我通过以下代码点击了跨域名
$.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类型数据
public string SaveFromMicrosite(PackageQueries x)--------它不是
public string SaveFromMicrosite(string x)--------------- It Works
PackageQueries是一个类
答案 0 :(得分:0)
要使用此方法:
public string SaveFromMicrosite(PackageQueries x)
{
...
}
您应该将整个数据作为JSON发布:
$.ajax({
...
data: JSON.stringify({ x: data }),
...
});
否则jQuery.ajax
会将您的数据编码为application/x-www-form-urlencoded
格式,其中一个键x
哪个值将是您的JSON,而ASP.NET不会自动对其进行解析。