[英]jQuery POST, Error 405 Method not allowed
我正在尝试使用 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 应该在所有帖子中包含什么? 和/或如何在 IIS 中设置正确的处理程序映射,因为我是 Web 开发的新手并且发现选项数量有点多。
引发错误的一段 javascript 如下:
$.post("/", { latitude: locLat, longitude: locLon, username: $('#onlineUsers').attr('itemid') });
当请求 HTTP 动词(GET、PUT、POST、DELETE、HEAD 等)并且指定的处理程序不支持/不允许时,IIS 会抛出 405。
您需要打开 IIS 管理器 -> 默认网站 -> 处理程序映射(或特定于您的 Web 应用程序的处理程序映射)
在这里,您需要使用处理程序映射,因为其中之一不允许“POST”动词。
由于您没有发布到任何特定页面(.aspx、.ashx 等),因此很难确定导致您出现问题的确切处理程序。
感兴趣的处理程序可能是:
确定您的请求被路由到的处理程序后,双击它以打开对话框。
从那里点击“请求限制”然后“动词”
确保适当的动词出现在文本区域中。
正如我之前提到的,我不确定哪个处理程序正在处理您的请求,因为您没有发布到任何特定页面(您可能会重写 URL 以适当地路由您的请求)。
如果上述操作失败,您可能需要检查是否安装了 WebDAV Publishing 并将其删除(需要重新启动)。
也许你应该像这样修改你的 post'URl 格式:
$.post('@Url.Content("~/Attach/UpdateAttach")'
这里的一些用户使用的是共享主机而不是专用服务器,因此他们可能无法访问 IIS 控制面板。
这是我的情况,这是我发现的..
我在通过 Godaddy 控制面板创建的根目录上有我的 Web 应用程序 .. 并且 POST 请求被确认..
然后我使用 FileZilla 为我的 jquery 创建了一个测试文件夹 ..(注意我使用了 FileZilla,所以 Web 应用程序以及 GoDaddy 的 IIS 不知道我希望这个文件夹成为我的应用程序的一部分)
然后每当我在这个测试文件夹上测试这个 jQuery.. 我得到那个错误 [405 Method not allowed]..
解决方案非常简单:
我将我的测试页面从 FileZilla 创建的测试文件夹中移出,并将其放置在通过 Godaddy 控制面板创建的文件夹中(在这种情况下,IIS 将知道该页面是我的 Web 应用程序的一部分:))
希望对共享主机的人有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.