2012-05-25 19 views
18

ich eine Ajax-Anforderung haben, die mein Code funktioniert gut „POST“ aber wenn verwendet „GET“ es gibt mir die folgende Fehlermeldung mitAufruf einer WebMethod jQueryAjax mit „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"} 

so hier ist, auf die Client-Seite,

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"); } 
     }); 
    } 

auf der Serverseite,

[WebMethod] 
public static string GetSomething() 
{ 
    return "got something"; 
} 

ein Grund, warum ich Störung erhalte, wenn verwendet "GET" ??

+0

Funktioniert die "Post"? – dhinesh

Antwort

58

Wenn Sie es mit GET aufrufen möchten, müssen Sie hinzufügen:

[WebMethod] 
[ScriptMethod(UseHttpGet=true)] 
.... 
+0

danke, es funktioniert. –

+0

Ich litt unter dem gleichen Problem. Vielen Dank. – jkl

1

anderen Weisen: Sie es

in Config-Datei hinzufügen können
<system.web> 
    ... 
    <webServices> 
     <protocols> 
       <add name="HttpGet"/> 
     </protocols> 
    </webServices> 
    ... 
</system.web> 
0

Sie den folgenden Code vor der sollte hinzufügen Tag in Web.config-Datei.

<location path="webservice.asmx"> 
    <system.web> 
    <webServices> 
     <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</location> 
Verwandte Themen