"405方法不允许" - 使用ASP.NET jQuery ajax POST时

Cur*_*urt 6 asp.net jquery post http-status-code-405

我搜索了与类似问题相关的大量不同的现有SO问题,但我找不到与我的问题相关的任何内容.

我有以下jQuery代码:

$.ajax({
   url: "Index.aspx/DeclineRequest"
   , type: 'POST'
   , contentType: 'application/json; charset=utf-8'
   , dataType: 'json'
   , data: JSON.stringify({ RequestId: requestId })
});
Run Code Online (Sandbox Code Playgroud)

我正在使用一种非常类似的技术在另一个ASP.NET Web应用程序上POST数据,这很好用.但是,此应用程序返回以下错误:

"NetworkError:405方法不允许 - http:// localhost:57255 / ....."

我找不到这两个应用程序的任何不同,所以我很困惑为什么这不起作用.

我能想到的这两个应用程序之间的唯一区别是,正在运行的应用程序是.NET 2.0,而无法运行的应用程序是.NET 3.5.

我已经尝试将以下内容添加到我的中web.config,但我仍然得到相同的405错误:

<webServices>
   <protocols>
     <add name="HttpPost"/>     
     <add name="HttpPostLocalhost"/>   
   </protocols>      
</webServices>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

更新(16:40):我已将此应用程序移动到IIS,并且不再返回405错误.但是,我们的开发环境只是localhost.为什么这只会在localhost上出错?

Nei*_*son 0

url: "Index.aspx/DeclineRequest" 不应该是 url: "Index.aspx?DeclineRequest" 应该吗?

很抱歉这个相当明显的建议,我以前没有见过这样的网址。你要重写吗?

  • 这是一种 WebMethod 调用格式,它调用 Index.aspx 代码隐藏中定义的 DeclineRequest 方法。 (2认同)