Javascript IIS express 405错误-不允许使用方法

Javascript IIS express 405错误-不允许使用方法,javascript,xml,iis,xmlhttprequest,Javascript,Xml,Iis,Xmlhttprequest,我正在开发一个组件,它使用xmlHttpRequest从服务器上的xml获取DOM元素位置。在拖放之后,我用新的位置更新xml,并希望通过XMLHttpRequest将其发回服务器以更新相同的文件 responseText消息声明不允许HTTP错误405.0-方法。无法显示您正在查找的页面,因为正在使用无效的方法(HTTP谓词) 我检查了applicationhost.config文件,看起来每个处理程序都配置了POST方法。还打开了Win7组件上IIS的所有功能 我的电脑:Win7 home

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

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

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

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

p、 e:我不使用webrequest方法,因为更新过程主要使用javascript,因为mootools库具有拖放功能


提前谢谢你

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

这些被设置为处理除GET和HEAD之外的所有谓词,因为“静态文件”的默认IIS行为是拒绝将它们发布到(或放置到)或删除

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


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

您的组件和处理来自同一来源的XMLHttpRequests的服务器是否相同?也就是说,是从同一家餐厅供应的吗,protocol://host:port 组合。如果没有,浏览器将发出HTTP选项,而不是您希望它发出的帖子。要处理此情况,请执行以下操作之一:


我现在结束这次对话,因为这个问题是通过Web服务通过JSON请求和对象映射解决的。我假设问题是关于目录上本地权限配置的安全问题

谢谢你的帮助


Kornél

处理程序是用什么写的?听起来你的javascript很好,但你的处理程序中有一个bug,所以是ASP.NET或PHP或你写的任何东西,因为你的问题在于。嗨,Jon,我的处理程序实际上不是我的处理程序,它是通过iis express安装过程安装的。如果你愿意,我可以在这里复制js代码,如果你认为这有帮助的话,但我可以假设的唯一问题是它与xml或格式的序列化有关,但正如我在最初的帖子中提到的,它没有任何联系,因为90%的可视处理都发生在js代码中。发布到您应该能够发布到的内容,并且收到405提示问题是服务器端的。当然,也许你没有发布,因为在这一点上的一些错误。你看过Fiddler的请求和响应了吗?我看过FireBug,responseText就是我在帖子中提到的。我用fiddler检查了一下,然后发了回来。您好,我现在结束这个对话,因为这个问题是通过WebService通过JSON请求和对象映射解决的。我假设问题是关于目录上本地权限配置的安全问题。谢谢你的帮助!Kornéla2天的研究之后,我发现避免“405方法不允许”的唯一有效解决方案是在
应用程序_BeginRequest
方法中定义CORS头,如本答案所述