Javascript $.ajax-为数据属性发送对象

Javascript $.ajax-为数据属性发送对象,javascript,jquery,asmx,Javascript,Jquery,Asmx,我试图用jQuery调用一个ASMXWeb服务方法,并为数据传递一个实际的JavaScript对象,然后返回JSON。我能做的最接近的事情是: $.ajax({ url: "WebService.asmx/HelloWorld", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ num: 12, name: "Adam" }),

我试图用jQuery调用一个ASMXWeb服务方法,并为
数据
传递一个实际的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)

但这将以XML而不是json返回结果

以下是web方法:

[WebMethod]
[ScriptMethod]
public string HelloWorld(int num, string name) {
    return ++num + name;
}
编辑

下面是请求标题的屏幕截图。显然,响应的内容类型设置为xml

设置响应格式: [网络方法] [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 公共字符串HelloWorld(int num,字符串名称){ 返回++num+name; } 请注意:asmx不会为GETs only POST返回JSON
根据Dave的评论

使用ASMX和ASPXJSON端点是不可能的。它们需要application/json内容类型和POST请求,或者不需要json


这看起来很有希望,但我仍在找回XML。我使用与我的第二个代码示例相同的设置调用了它-没有contentType。我是否应该更改其他内容?Chrome开发工具-这就是我看到的:
13Adam
-此外,我的成功回调没有触发-我至少应该得到一个未定义的警报。但也许只添加contentType:
“application/json;charset=utf-8”
就足够了。[WebMethod] [ScriptMethod] public string HelloWorld(int num, string name) { return ++num + name; }