我正在使用Angular和ASP.NET API。我面临的问题是:当我在API代码中添加CORS时,它可以在Internet Explorer上工作,但在Chrome和Firefox上不起作用。

这是错误:

xmlhttprequest无法加载http://localhost:41028/api/values/abc。“访问控制"标头包含多个值’ *, *’,但只允许一个值。起源 ‘http://本地主机:44796因此,不允许访问。

这是我在web.config文件:

<system.webServer>
...
<httpProtocol>
  <customHeaders>
      <!-- Adding the following custom HttpHeader will help prevent CORS errors -->
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>
...
</system.webServer>

在里面WebApiConfigFile.cs我添加的文件:

var CorsAttribute = new EnableCorsAttribute("* ","* ", "* ");
        config.EnableCors(CorsAttribute);

我是第一次使用CORS。任何帮助将不胜感激。

答案

您将CORS设置两次。我认为这是问题。

请删除任何一个CORS设置。您可以将其从中删除web.config或来自WebApiConfigFile.cs

来自: stackoverflow.com