使用jQueryAjax"GET"调用WebMethod

Vis*_*wda 18 jquery asp.net-ajax webmethod

我有一个ajax请求使用"POST"很好,但当使用"GET"它给我以下错误,

{"Message":"An attempt was made to call the method \u0027GetSomething\u0027 
using a GET      request, which is not allowed.","StackTrace":" at 
System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData 
methodData, HttpContext context)\r\n at 
System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, 
WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码,在客户端,

function test() {
        $.ajax({
            url: "Default4.aspx/GetSomething",
            type: "GET",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (res) { debugger; alert(res.d); },
            error: function (res) { debugger; alert("error"); }
        });
    }
Run Code Online (Sandbox Code Playgroud)

在服务器端,

[WebMethod]
public static string GetSomething()
{
    return "got something";
}
Run Code Online (Sandbox Code Playgroud)

使用"GET"时我得到错误的任何原因??

Ica*_*rus 67

如果要使用GET调用它,则需要添加:

[WebMethod]
[ScriptMethod(UseHttpGet=true)]
....
Run Code Online (Sandbox Code Playgroud)