答案非常简单,并且基于我之前的帖子,如果ContentType不是JSON,是否可以从.asmx
Web服务返回JSON?和对httpget webmethod(c#)的JQuery
ajax调用不起作用。
数据应为JSON编码。您应该对每个输入参数分别进行编码。因为只有一个参数,所以您应该执行以下 *** 作:
首先将您的数据构造为本地Javascript数据,例如:
var myData = {Address: {Address1:"address data 1", Address2:"address data 2", City: "Bonn", State: "NRW", Zip: "53353", {Code: 123, Description: "bla bla"}}};
然后给作为ajax请求的参数
{request:$.toJSON(myData)}
$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "http://bmccorm-xp/HBUpsAddressValidation/AddressValidation.asmx/ValidateAddress", data: {request:$.toJSON(myData)}, dataType: "json", success: function(response){ alert(response); }})
而不是$
.toJSON来自JSON插件,您可以使用http://www.json.org/中的另一个版本(JSON.stringify)
如果您的WebMethod具有类似的参数
public Response ValidateAddress(Request request1, Request myRequest2)
调用
data参数的值
ajax应类似于
data: {request1:$.toJSON(myData1), myRequest2:$.toJSON(myData2)}
要么
data: {request1:JSON.stringify(myData1), myRequest2:JSON.stringify(myData2)}
如果您喜欢其他版本的JSON编码器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)