概述
前面写了一篇:《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>
效果如下图:
ASP.NET CORE 项目特别说明
在 ASP.NET CORE 项目中是没有 Web.config 文件的,一般是 app.config 文件,其实发布项目后会生成 Web.config 文件的。我们只需要照例从文件模板中添加 Web 配置文件即可!