在使用.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);

这样就可以解决这个问题了。

解决.NET 4.5.1 Web API 跨域请求被CORS策略阻止的问题

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

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