CORS在我的MVC应用程序中不起作用。尽管设置了web.config,但仍然出现Header错误

时间:2014-06-16 14:19:20

标签: asp.net-mvc http-headers cors

尝试向我的MVC应用程序发出CORS请求时出现以下错误。

XMLHttpRequest cannot load http://www.ASite.com/gallery/cors/0. Request header field Cache-Control is not allowed by Access-Control-Allow-Headers. 11576?EventId=3108:1
error: Server responded with 0 code.

我已经将以下自定义标头添加到我的web.config中,我认为它应该允许CORS请求。有人可以帮忙。

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="*" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT" />
  </customHeaders>
</httpProtocol>
     

2 个答案:

答案 0 :(得分:2)

马修的答案瞥了一眼主要问题。您无法在* per the specification中使用Access-Control-Allow-Headers。您必须指定要允许的确切标题。

如果有很多标题发生变化,您可能需要查看服务器端脚本以阅读Access-Control-Request-Headers HTTP请求标头,然后将正确的标头添加到Access-Control-Allow-Headers响应中。< / p>

答案 1 :(得分:1)

您的web.config指定允许所有标头。您应该只指定您需要的内容:

<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />