我已经使用ASP.NET Web API设置了一个REST API,并启用了CORS,如下所示:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
jQuery ajax调用适用于Chrome和Safari,但在Firefox中我得到NetworkError: 405 Method Not Allowed
。
当网站http://localhost
时,Firefox是否有一些特别严格的限制?我错过了我需要的Web.Config吗?
谢谢!
##编辑:
看起来它是OPTION方法不起作用。 Chrome中也不允许使用OPTION方法,但Chrome仍在继续制作GET请求。 Firefox为OPTION提供405,然后永远不会进行GET。
这是来自chrome dev工具的请求:
答案 0 :(得分:1)
尝试使用修复域而不是“*”解决了我们的问题
<add name="Access-Control-Allow-Origin" value="http://localhost" />
答案 1 :(得分:0)
您可以尝试在system.web - &gt;下添加以下行吗? web.config中的处理程序?
&lt; remove name =“OPTIONSVerbHandler”/&gt;
此默认处理程序可能会阻止您的选项请求
答案 2 :(得分:0)
我遇到了同样的情况。 options-keyword上升了405 HTTP错误。嗯,解决方案是从IISExpress(开发应用程序服务器)切换到ISS 7.x.使用开发Web服务器(当然)存在重大限制。这解决了你提到的问题。