我一直在研究如何使用以下代码使用$ .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”时,呼叫未通过。有人可以指出这种情况发生的原因吗?
答案 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。