我正在研究一个使用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库的拖放功能。
提前谢谢!
答案 0 :(得分:0)
您在评论中提到的配置设置了处理“静态文件”的默认IIS模块,即通过基于将URI路径映射到文件系统返回文件来响应GET请求。
这些设置为处理所有动词,但设置为405除了GET和HEAD之外的所有内容,因为这是“静态文件”的默认IIS行为是拒绝允许它们被POST(或PUT到,或DELETEd)
因此,错误是你要POST的URI没有映射到你的处理程序来处理javascript正在POST的数据。如果该处理程序是ASPX页面,则检查其他ASPX页面是否正常工作以及是否使用了正确的URI。然后尝试使用一个简单的HTML表单来调试它,该表单会发布适当的数据(甚至是不适当的数据,这样你至少可以获得有关数据错误的错误消息,而不是最终拒绝处理POST的地方)。
如果处理POST的代码位于IHttpModule
或IHttpHandler
,那么您需要在web.config中添加一些内容来覆盖相关URI的默认值。< / p>
答案 1 :(得分:0)
您的组件和处理XMLHttpRequests的服务器是否来自同一个来源? IE浏览器。它是由相同的protocol:// host:port组合提供的。如果没有,浏览器将发出HTTP OPTIONS而不是您期望的POST。要处理这种情况,请执行以下操作:
答案 2 :(得分:0)
我正在关闭此对话,因为通过WebService解决了JSON请求和对象映射问题。我认为问题是关于目录上的本地权限配置的安全问题。
感谢您的帮助!
科内尔