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

概述

前面写了一篇:《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>

效果如下图:

image

ASP.NET CORE 项目特别说明

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

参考文章

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

posted @ 2021-10-27 17:04  鲜橙rqc  阅读(13)  评论(0编辑  收藏  举报