C# ASP.NET MVC/WebApi 或者 ASP.NET CORE 最简单高效的跨域设置

时间:2021-03-15 19:10:15

概述

前面写了一篇:《C# ASP.NET WebApi 跨域设置》的文章,主要针对 ASP.NET WebApi 项目。

今天遇到 ASP.NET MVC 项目也需要设置跨域,否则浏览器提示:

Access to XMLHttpRequest at 'xxxx' from origin 'null' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.

于是,重新找到了一种最简单和高效的跨域设置,不仅针对传统 ASP.NET 项目有效,对 ASP.NET CORE 项目同样有效。

设置方式

在 Web.config 配置文件的 configuration 节点里面添加:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>

效果如下图:

C# ASP.NET MVC/WebApi 或者 ASP.NET CORE  最简单高效的跨域设置

ASP.NET CORE 项目特别说明

在 ASP.NET CORE 项目中是没有 Web.config 文件的,一般是 app.config 文件,其实发布项目后会生成 Web.config 文件的。我们只需要照例从文件模板中添加 Web 配置文件即可!

参考文章

https://*.com/questions/59471861/access-to-xmlhttprequest-from-origin-has-been-blocked-by-cors-policy-no-access