当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.net Core CORS 跨域

Asp.net Core CORS 跨域

2018年08月10日  | 移动技术网IT编程  | 我要评论

弈品围棋,金瓶梅qvod,顺德鱼生

本文主要介绍在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");
                });
            });

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网