javascript - jQuery POST,错误 405 方法不允许

标签 javascript jquery asp.net-mvc-4 iis-7.5

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

POST http://localhost/ 405 (Method Not Allowed)
send 
i.extend.ajax 
i.(anonymous function)
(anonymous function)

根据我的阅读,这要么是 IIS 中的处理程序映射有问题,要么是 web.config 中需要进行一些配置。无论哪种方式,我都没有找到正确的解决方案。 谁能告诉我我的 web.config 应该包含在所有 POST 中的内容?和/或如何在 IIS 中设置正确的处理程序映射,因为我是 Web 开发的新手并且发现选项的数量有点多。

抛出错误的 javascript 片段如下:

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

最佳答案

当指定的处理程序不支持/不允许请求 HTTP 谓词(GET、PUT、POST、DELETE、HEAD 等)时,IIS 会抛出 405。

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

enter image description here

在这里您需要使用处理程序映射,因为其中一个映射不允许使用“POST”动词。

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

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

  • ExtensionlessUrlHandler-ISAPI-4.0_32bit/64bit
  • 静态文件

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

enter image description here

从那里点击“请求限制”,然后点击“动词”

确保文本区域中存在适当的动词。

enter image description here

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


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

WebDAV

关于javascript - jQuery POST,错误 405 方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258014/

相关文章:

javascript - 我如何判断一个对象是否是 jQuery Promise/Deferred?

asp.net-mvc - 更改特定表单的验证设置

c# - 在任务中渲染局部 View

javascript - Angularjs Controller 打破了我的表达

jquery load() 的 Javascript 替代品

javascript - HTML:如何使用 document.getElementByID 更改表格内容?

jquery - MVC 4 创建可调整大小的列表框

javascript - 调整大小函数多次触发

php - wp.​​customize 不是一个函数

javascript - 显示另一个时隐藏 div - jQuery 切换