Jquery iss7不允许选项飞行前请求后请求-如何启用?

Jquery iss7不允许选项飞行前请求后请求-如何启用?,jquery,iis-7,azure,cors,preflight,Jquery,Iis 7,Azure,Cors,Preflight,我们正在运行一个托管在WindowsAzure中的WCF服务,并尝试从托管在其他地方的网站执行POST请求,但事实证明这非常棘手。显然,在iis7端的实际POST请求之前,允许选项飞行前请求似乎非常困难 即使我们的web.config中有定义 <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> &l

我们正在运行一个托管在WindowsAzure中的WCF服务,并尝试从托管在其他地方的网站执行POST请求,但事实证明这非常棘手。显然,在iis7端的实际POST请求之前,允许选项飞行前请求似乎非常困难

即使我们的web.config中有定义

  <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Origin,X-Requested-With,Content-Type,Accept" />
        <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS"/>
      </customHeaders>
    </httpProtocol>

为了安全

<security>
  <requestFiltering>
    <verbs>
      <add verb="OPTIONS" allowed="true" />
    </verbs>
  </requestFiltering>
</security>

我们不断得到HTTP 405方法不允许的响应

我在stackoverflow的不同帖子中尝试了多种技巧,但我开始感到绝望,因为似乎什么都不管用。。。该网站在Chrome中工作,因为它似乎不关心飞行前的响应,但IE挂起HTTP 405响应

是否有人知道可以通过web.config(以及如何)允许飞行前选项请求,或者我们需要开始为飞行前请求实现我们自己的处理程序(如果是这样的话,最好举个例子:)

谢谢, 马特退房。我认为WebDAV安装在Web角色上(但无法确认)。您必须RDP到web角色实例,并检查是否存在这种情况。如果是,则需要创建以删除WebDAV

您还可以查看有关如何通过appcmd或vbscript在IIS中配置谓词的文章(两者都可以通过启动任务执行)

看来这些东西必须在应用程序主机配置级别进行配置,而不允许在web.config级别进行配置。

IIS(至少版本7.*)在飞行前请求处理方面肯定存在缺陷。 我使用的是经典asp,将此代码添加到Web.config解决了这个问题

    <handlers>
        <remove name="OPTIONSVerbHandler" />
        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="None" />
    </handlers>


感谢Astaykov提供的好链接,我们需要研究这些链接并开始着手statup任务。这是一篇有很好解释和完整步骤的博客文章,由Maarten撰写: