【问题标题】:IIS express 405 error - method not allowedIIS express 405 错误 - 不允许的方法
【发布时间】:2012-01-25 01:54:22
【问题描述】:

我正在开发一个组件,该组件使用 xmlHttpRequest 从服务器上的 xml 获取 DOM 元素位置。在拖放之后,我用新位置更新了 xml,我想通过 XMLHttpRequest 将它发回服务器以更新相同的文件。

responseText 消息指出 HTTP 错误 405.0 - 方法不允许。您正在查找的页面无法显示,因为正在使用无效的方法(HTTP 动词)。

我检查了 applicationhost.config 文件,看起来每个处理程序都配置了 POST 方法。在 Win 7 组件上也开启了 IIS 的所有功能。

我的电脑:Win7 家庭基础版、视觉工作室专业版、iis 7.5 express。

p.e.:我不使用 webrequest 方法,因为主要使用 javascript 进行更新过程,因为 mootools 库的拖放功能。

提前谢谢你!

【问题讨论】:

  • handler 是用什么写的?听起来你的 javascript 很好,但你的处理程序有错误,所以它是 ASP.NET 或 PHP 或任何你写的,因为你的问题所在。
  • 嗨乔恩,我的处理程序实际上不是我的处理程序,它是由 iis express 安装过程安装的。如果您愿意,如果您认为有帮助,我可以在此处复制 js 代码,但我可以假设的唯一问题是它与 xml 或格式的序列化有关。
  • 顺便说一句,它在 asp.net 中,但正如我在原帖中提到的,它没有任何联系,因为 90% 的可见处理发生在 js 代码中。
  • 发布到您应该能够发布到的内容,并收到 405 表明问题出在服务器端。当然,也许你当时没有发布由于一些错误。你看过 Fiddler 的请求和响应了吗?
  • 我查看了 FireBug,responseText 就是我在帖子中提到的。我用提琴手检查它,然后再发帖。

标签: javascript xml iis xmlhttprequest


【解决方案1】:

您在评论中提到的配置设置了用于处理“静态文件”的默认 IIS 模块,即通过返回基于将 URI 路径映射到文件系统的文件来响应 GET 请求。

这些设置为处理除 GET 和 HEAD 之外的所有动词,但 405,因为这是“静态文件”的默认 IIS 行为是拒绝允许它们被 POST(或 PUT 到,或 DELETEd) .

因此,错误是您要发布到的 URI 没有映射到您的处理程序以处理 javascript 正在发布的数据。如果该处理程序是 ASPX 页面,则检查其他 ASPX 页面是否正常工作以及是否使用了正确的 URI。然后尝试使用一个简单的 HTML 表单来调试它,该表单可以 POST 适当的数据(甚至是不适当的数据,这样您至少可以得到一条关于数据错误的错误消息,而不是最终出现在某个拒绝处理 POST 的地方)。

如果处理 POST 的代码位于 IHttpModuleIHttpHandler 中,那么您需要在 web.config 中添加一些内容以覆盖相关 URI 的默认值。

【讨论】:

    【解决方案2】:

    您的组件和处理 XMLHttpRequest 的服务器是否来自同一来源? IE。它是否从相同的协议://主机:端口组合提供。如果没有,浏览器将发出 HTTP OPTIONS 而不是您期望的 POST。要处理这种情况,请执行以下操作:

    JSONP

    Cross-origin resource sharing

    【讨论】:

    • 您好,我将关闭此对话,因为问题已通过 WebService 的 JSON 请求和对象映射解决。我认为问题是与目录上的本地权限配置有关的安全问题。谢谢您的帮助!科尔内尔
    【解决方案3】:

    我将关闭此对话,因为该问题已通过 WebService 的 JSON 请求和对象映射解决。我认为问题是与目录上的本地权限配置有关的安全问题。

    感谢您的帮助!

    科尔内尔

    【讨论】:

    • 经过 2 天的研究,我发现避免“不允许使用 405 方法”的唯一可行解决方案是在 Application_BeginRequest 方法中定义 CORS 标头,如本答案 stackoverflow.com/a/14631068/827168 中所述/跨度>
    猜你喜欢
    • 2018-08-01
    • 2019-11-24
    • 2017-11-13
    • 1970-01-01
    • 2021-12-20
    • 2016-12-02
    • 2015-11-25
    • 2022-02-09
    • 2012-10-25
    相关资源
    最近更新 更多