jQuery POST,错误405方法不允许

Mat*_*att 11 javascript jquery iis-7.5 asp.net-mvc-4

我正在尝试使用IIS 7.5托管ASP.NET MVC4 Web应用程序.调试应用程序时一切正常(我假设这是因为Windows身份验证).但是,当我发布应用程序并浏览到它时,我得到405方法不允许错误:

POST http://localhost/ 405 (Method Not Allowed)
send 
i.extend.ajax 
i.(anonymous function)
(anonymous function)
Run Code Online (Sandbox Code Playgroud)

从我读过的内容来看,IIS中的Handler Mappings存在问题,或者web.config中需要一些配置.无论哪种方式,我都没有找到正确的解决方案.谁能告诉我我的web.config应包含在所有POSTS中?和/或如何在IIS中设置正确的Handler映射,因为我是Web开发的新手,并且发现选项的数量有点压倒性.

抛出错误的javascript片段如下:

$.post("/", { latitude: locLat, longitude: locLon, username: $('#onlineUsers').attr('itemid') });
Run Code Online (Sandbox Code Playgroud)

Bra*_*one 19

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

您需要打开IIS管理器 - >默认网站 - >处理程序映射(或特定于您的Web应用程序的处理程序映射)

在此输入图像描述

在这里你需要使用处理程序映射,因为其中一个不允许"POST"动词.

由于您没有发布到任何特定页面(.aspx,.ashx等),因此很难确定导致问题的确切处理程序.

感兴趣的处理程序可能是:

  • ExtensionlessUrlHandler-ISAPI-4.0_32bit/64bit
  • StaticFile

一旦确定了您的请求被路由到的处理程序,请双击它以打开对话框.

在此输入图像描述

从那里点击"请求限制"然后"动词"

确保文本区域中存在相应的动词.

在此输入图像描述

正如我之前提到的,我不确定哪个处理程序正在处理您的请求,因为您没有发布到任何特定页面(您可能正在重写URL以适当地路由您的请求).


如果上述操作失败,您可能需要检查是否已安装WebDAV Publishing并将其删除(需要重新启动).

WebDAV的

  • 静态文件处理程序是问题.谢谢你的帮助,很棒的答案! (3认同)