ASP.Net WebMethod 405

我希望有人可以解释为什么我在尝试从JQuery ajax方法调用时,在我的ASP.Net VB.Net WebMethod上收到405错误的原因。

服务器实施:

 _ Public Shared Function DoSomething(id As String) As String Dim vm As HssViewModel = New HssViewModel() Dim jResult As String = JsonConvert.SerializeObject(vm) Return jResult End Function 

Javscript实施:

  $.ajax({ type: "POST", url: "mypage.aspx/DoSomething", contentType: "application/json; charset-utf-8", data: { 'id': 'ABC12345' }, dataType: "json", cache: true, succes: function (data) { context = data; console.log(data); }, error: function (err) { console.log("JQUERY ERROR RESPONSE: " + err.message); } }); 

我一直收到以下错误消息:

 POST http://localhost/mypage.aspx/DoSomething 405 (Method Not Allowed) 

我也尝试设置脚本方法标记以允许GET请求但我收到404

   _ 

您的WebMethod期待GET请求:

  

但是你正在做一个POST请求:

 $.ajax({ type: "POST", 

当请求HTTP动词(GET,PUT,POST,DELETE,HEAD等)并且指定的处理程序不支持/禁止时,IIS抛出405。

如果在更改上面的差异之后问题仍然存在,那么请查看您的iis处理程序映射。

尝试将以下行添加到web.config中。 我在部署到Web服务器后遇到此问题,但在本地调试时没有遇到此问题。 这在本节中介绍。