jQuery ASP.net webservice消费

时间:2010-08-09 13:28:14

标签: javascript asp.net jquery web-services asmx

我一直在研究如何使用以下代码使用$ .ajax调用来使用web方法:

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "WebService.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            }
        });

但是,当我尝试将类型从“POST”更改为“GET”时,呼叫未通过。有人可以指出这种情况发生的原因吗?

3 个答案:

答案 0 :(得分:4)

对于ASP.Net AJAX Web服务ScottGu has an excellent blog entry on this,已禁用degault GET请求,包括如何绕过该安全性,如果这就是您所追求的。

以下是一个示例修复,通过在UseHttpGet上设置ScriptMethodAttribute

[WebMethod, ScriptMethod(UseHttpGet=true)] 
public string HelloWorld() 
{
  return "Hello World";
}

答案 1 :(得分:1)

正如Nick所写,您可以使用ScriptMethodAttribute,或者您可以在web.config中启用GET请求处理:

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

答案 2 :(得分:0)

您是否尝试检查服务器端代码以查看它从哪里提取值?根据使用的方法,它可能不会响应。

另外:如果您要从Web服务检索数据,那么逻辑上正确的方法通常是GET。