Asp.net Core CORS 跨域
程序员文章站
2022-06-20 23:37:51
本文主要介绍在Asp.net Core采用CORS方式解决跨域 关于跨域的原理介绍可参考 "Asp.net Web API 解决跨域详解" 1 在Startup添加允许跨域的策略 2怎样应用AnyOrigin策略 只需要在控制器头上(或某个行为上)添加标识: 如: 3 AnyOrigin略几乎直接完 ......
本文主要介绍在Asp.net Core采用CORS方式解决跨域
关于跨域的原理介绍可参考
1 在Startup添加允许跨域的策略
services.AddCors(options => { options.AddPolicy("AnyOrigin", builder => { builder.AllowAnyOrigin() //允许任何来源的主机访问 .AllowAnyMethod()//允许任何请求方法 .AllowAnyHeader()//允许任何请求头 .AllowCredentials();//指定处理cookie }); });
-
2怎样应用AnyOrigin策略
只需要在控制器头上(或某个行为上)添加标识:[EnableCors("AnyOrigin")]
如:
[Route("api/[controller]/[action]")] [ApiController] [EnableCors("AnyOrigin")] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[] { "value1", "value2" }; } }
-
3
AnyOrigin略几乎直接完全无视了“同源策略”的限制,任何客户端都允许跨域访问,实际项目中建议尽量不要这么写。
可以采用如下方式,对访问源,HTTP请求方法及请求头根据实际情况进行限制:
services.AddCors(options => { options.AddPolicy("AllowSpecificOrigin", builder => { builder.WithOrigins("http://localhost:40197", "http://localhost:40196") .WithHeaders("GET", "POST") .WithHeaders("Authorization"); }); });
下一篇: Django之图书管理系统
推荐阅读
-
.net core web api 添加对session跨域实现
-
SpringBoot2.x整合Shiro出现cors跨域问题(踩坑记录)
-
SpringBoot跨域Jsonp和Cors的方法
-
Springboot处理CORS跨域请求的三种方法
-
Asp.Net Core基于Cookie实现同域单点登录(SSO)
-
asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)
-
记Asp.Net Core Swagger 使用 并带域接口处理
-
你可能不知道的CORS跨域资源共享
-
跨域请求两种方法 jsonp和cors的实现
-
Apache中配置支持CORS(跨域资源共享)实例