나는 객체JQuery와 아약스를 통해 웹 서비스에 자바 스크립트 객체를 전달
[WebMethod]
public List<User> ContractorApprovals()
에게 반환하는 웹 서비스가 나는 또한 내가 jQuery를 통해 내 웹 서비스 호출을 할 때 객체
[WebMethod]
public bool SaveContractor(Object u)
을 accepcts Web 서비스를
:
function ServiceCall(method, parameters, onSucess, onFailure) {
var parms = "{" + (($.isArray(parameters)) ? parameters.join(',') : parameters) + "}"; // to json
$.ajax({
type: "POST",
url: "services/"+method,
data: parms,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if (typeof onSucess == 'function' || typeof onSucess == 'object')
onSucess(msg.d);
},
error: function(msg, err) {
$("#dialog-error").dialog('open');}
});
나는 첫 번째 것을 아주 좋다고 부를 수있다. 내 onSucess 함수는 서비스에서 내 User 객체처럼 정확하게 구조화 된 javascript 객체를 전달받습니다.
그러나 개체를 서버로 다시 가져 오는 데 문제가 있습니다.
개체를 서버 측에서 매개 변수로 받아들이고 있으므로 거기에 문제가 있다고 생각하지 않습니다. 그래서 내가 뭔가를 생각하고하면 클라이언트 측의 PARMS에 문제가 있습니다하지만 난 내가
ServiceCall("AuthorizationManagerWorkManagement.asmx/ContractorApprovals",
"",
function(data,args){$("#div").data('user',data[0])},
null)
후 효과
ServiceCall("AuthorizationManagerWorkManagement.asmx/SaveContractor",
JSON.stringify({u: $("#div").data("user")}) //dont work $("#div").data('user'), //These also do not work: "{'u': ' + $("#div").data("user") + '}", NOR JSON.stringify({u: userObject})
function(data,args){(alert(data)},
null)
일을하고
... 확실히 어떤 아니에요
첫 번째 서비스 호출이 작동한다는 것을 알고 데이터를 얻을 수 있습니다. 두 번째 방법은 "onSuccess"대신 "onFailure"메서드를 실행하는 것입니다.
아이디어가 있으십니까?
업데이트 : 내가 사용하는 내 마지막 코드 블록을 chaed
: JSON.stringify({u: $("#div").data("user")})
을 지금 Invalid object passed in, member name expected. (1):
얻을 그러나 나는 수단이 ... 구글가 많이 켜져 것을 아무 생각이 없다 오류,하지만 내 문제는 ...
FireFox에 추가 기능을 사용하여 시작하십시오. 각 아약스 호출의 응답을 확인할 수 있도록 콘솔 탭을 활성화하십시오. 서버 측 코드에서 예외가 될 수 있습니까? 매개 변수를 보내는 방법에 문제가 있습니까? – house9
개발자 도구는 무엇입니까? ie8에 대한 애플 리케이션 개발 ... 내가 디버그 켜져, 그리고 아약스 전화를 실행하고 아무것도 디버거에 happend. 나는 뭔가를 켜야합니까? – kralco626
확인.문제는 어떻게 든'JSON.stringify()'에 의해 반환 된 문자열이 '{}'을 괄호로 묶는 추가 세트를 가지고 있다는 것입니다. 나는'params = parms.substring (1, parms.length-1); '을했다. 그러나 나는이 해결책을 좋아하지 않는다. 누구든지 그것을 해결할 올바른 방법을 알고 있습니까? 나는 그것이 stringify 함수에 전달되는 대괄호와 관련이 있다고 생각하지만, 어떻게해야하는지 모르겠다. – kralco626