IIS表示405错误 - 不允许使用方法

时间:2012-01-25 01:54:22

标签: javascript xml iis xmlhttprequest

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

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

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

我的电脑:Win7 home basic,visual studio professional,iis 7.5 express。

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

提前谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

JSONP

Cross-origin resource sharing

答案 2 :(得分:0)

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

感谢您的帮助!

科内尔