我正在尝试使用jQuery调用asmx Web服务方法,并为data
传递一个实际的JavaScript对象,并返回JSON。我能来的最接近的是:
$.ajax({
url: "WebService.asmx/HelloWorld",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ num: 12, name: "Adam" }),
dataType: "json",
success: function (data) { alert(data.d); }
});
如何在没有首次字符串化我的对象的情况下成功拨打此电话?
我尝试了这个(删除了contentType)
$.ajax({
url: "WebService.asmx/HelloWorld",
type: "POST",
data: { num: 12, name: "Adam" },
dataType: "json",
success: function (data) { alert(data.d); }
});
但是这会以XML格式返回结果,而不是json。
这是网络方法:
[WebMethod]
[ScriptMethod]
public string HelloWorld(int num, string name) {
return ++num + name;
}
修改
以下是请求标头的屏幕截图。显然,内容类型设置为xml以进行响应。
答案 0 :(得分:2)
<小时/> Per Dave的评论
使用ASMX和ASPX JSON端点是不可能的。它们需要application / json Content-Type和POST请求或没有JSON。