我们正在运行托管在 Windows Azure 中的 WCF 服务,并尝试从托管在其他地方的网站执行 POST 请求,但这已被证明非常棘手。显然,在 iis7 端的实际 POST 请求之前允许 OPTIONS 预检请求似乎真的很困难。
即使我们在 web.config<system.webserver>
中有定义
<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 Method not Allowed 响应。
我在stackoverflow的不同帖子中尝试了多种技巧,但我开始绝望,因为似乎没有任何效果......网站在Chrome中工作,因为它似乎不关心预检响应,但IE挂在HTTP 405响应上。
有谁知道无论如何都可以通过 web.config(以及如何)允许预检 OPTIONS 请求,或者我们是否需要开始为预检请求实现我们自己的处理程序(如果是这样的话,一个例子会很棒:))?
谢谢,马蒂