2012-10-22 48 views
3

这工作

[System.Web.Services.WebMethod] 
public static string Save_HH() 
{ 
    return "abc"; 
} 

这不起作用

[System.Web.Services.WebMethod] 
public static string Save_HH(string myString) // (int i, string s) (object o) etc 
{ 
    return "abc"; 
} 

这是Ajax调用

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/Save_HH", 
    data: {}, // data: JSON.stringify({abc:123}), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (response) { 
     btn.css("visibility", "visible"); 
     $("#ta_response").text(response.d); 
    }, 
    fail: function() { 
     alert("fail"); 
    }, 
}); 

此错误消息是(我的新帐户倾斜后链接)POST本地主机/ Default.aspx/Save_HH 500(内部服务器错误)


在这一点上,问题似乎相当清晰和简洁,但我只是被阻止发布它。我不想再说什么了,因为我认为这是一个很好的问题,说别的什么会让读者感到困惑。

回答

3

如果更换此:

data: {}, // data: JSON.stringify({abc:123}), 

与此:

data: { myString : "test" } 

它应该工作开箱。

请记住,您通过$.ajax调用传递的参数的名称和类型必须与您在WebMethod中声明的参数名称和类型相匹配。否则,绑定将不会发生,并且您的myString参数将在WebMethod Save_HH内部为null(在字符串类型的情况下)。

+0

:)非常感谢你。在这种情况下,确切的答案是使用数据:JSON.stringify({myString:123}),...}。它看起来像jQuery正在做的事情。但这仍然有很大帮助。 *它不会让我投票 – user1764195

0
jQuery.ajax(url [, settings]) 

url一个字符串,其中包含请求发送到的URL。
settings配置Ajax请求的一组键/值对。所有设置都是可选的。可以使用$ .ajaxSetup()为任何选项设置默认值。

相关问题