Jquery 使用json类型的数据进行跨域调用
我做了一个跨域点击下面的代码Jquery 使用json类型的数据进行跨域调用,jquery,asp.net,jsonp,Jquery,Asp.net,Jsonp,我做了一个跨域点击下面的代码 $.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite", data: { x: JSON.stringify(data) }, contentType: "application/json; charset=utf-8", dataType: "jsonp", success: function(js
$.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite",
data: { x: JSON.stringify(data) },
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(json) {
if (json.d="true")
alert("Saved Successfully");
},
error: function() {
alert("Hit error fn!");
}
});
在服务器端,我使用一个asp.net处理程序(.ashx)页面和一个.cs页面来写入我的方法(我必须向其调用)。但当我从浏览器传递字符串时,它工作正常,但在传递json类型数据时失败
公共字符串SaveFromMicrosite(PackageQueries x)----它不
公共字符串SaveFromMicrosite(字符串x)----它可以工作
PackageQueries是一个类,用于此方法:
public string SaveFromMicrosite(PackageQueries x)
{
...
}
您应该将整个数据发布为JSON:
$.ajax({
...
data: JSON.stringify({ x: data }),
...
});
否则,
jQuery.ajax
将把你的数据编码成application/x-www-form-urlencoded
格式,其中一个键x
哪个值将是你的JSON,ASP.NET将不会自动判定它。什么“失败”?顺便说一句,JSON.stringify的结果是string,最好用ide来显示区别。@Alexei Levenkov=我编辑了这个问题,请看最后一行