解决.NET 4.5.1 Web API 跨域请求被CORS策略阻止的问题
在使用.NET 4.5.1 的 Web API 时,经常会遇到跨域请求被CORS策略阻止的问题。错误信息通常为:'has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.'。这是因为后台设置了多个允许跨域访问的来源,导致浏览器无法识别。
要解决这个问题,需要在后台代码中添加以下代码:
在 WebApiConfig.cs 文件中添加以下代码:
var cors = new EnableCorsAttribute('http://example.com', '*', '*');
config.EnableCors(cors);
其中:
- 第一个参数是允许跨域访问的来源,可以设置为具体的域名或IP地址;
- 第二个参数是允许跨域访问的HTTP方法,可以设置为'GET'、'POST'等;
- 第三个参数是允许跨域访问的HTTP头信息,可以设置为'Content-Type'等。
如果需要允许多个来源跨域访问,可以在第一个参数中使用逗号分隔多个来源,如下所示:
var cors = new EnableCorsAttribute('http://example.com,http://example2.com', '*', '*');
config.EnableCors(cors);
这样就可以解决这个问题了。
原文地址: https://www.cveoy.top/t/topic/mzJZ 著作权归作者所有。请勿转载和采集!