繁体   English   中英

jQuery POST,错误 405 方法不允许

[英]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 等),因此很难确定导致您出现问题的确切处理程序。

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

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

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

在此处输入图片说明

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

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

在此处输入图片说明

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


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

网络DAV

也许你应该像这样修改你的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM