这个错误是因为服务器返回的响应头中包含了多个相同的'Access-Control-Allow-Origin'值,而CORS规定响应头中只能包含一个'Access-Control-Allow-Origin'值。因此,需要在Web API的响应头中设置'Access-Control-Allow-Origin'值,并确保只有一个值。可以在Web API的Global.asax.cs文件中添加以下代码来设置'Access-Control-Allow-Origin'值:

protected void Application_BeginRequest()
{
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "https://a.com");
    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
        HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
        HttpContext.Current.Response.End();
    }
}

这里的'Access-Control-Allow-Origin'值为https://a.com,可以根据实际情况进行修改。此外,还设置了'Access-Control-Allow-Methods'和'Access-Control-Allow-Headers'值,以允许GET和POST请求,并允许Content-Type和Accept请求头。最后,还设置了'Access-Control-Max-Age'值,以缓存CORS响应的有效期。

C# Web API .NET 4.5.1 跨域访问报错:'Access-Control-Allow-Origin' 多值问题修复

原文地址: https://www.cveoy.top/t/topic/mwMt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录