您当前的位置: 首页 > 

彭世瑜

暂无认证

  • 5浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

跨域资源共享CORS整理

彭世瑜 发布时间:2020-09-03 17:45:12 ,浏览量:5

CORS需要浏览器服务器同时支持。 目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

  • 简单请求
  • 非简单请求,会出现"预检"请求
通用配置
//指定允许其他域名访问
'Access-Control-Allow-Origin: *'//一般用法(*,指定域,动态设置),3是因为*不允许携带认证头和cookies
//是否允许后续请求携带认证信息(cookies),该值只能是true,否则不返回
'Access-Control-Allow-Credentials:true'
//预检结果缓存时间,也就是上面说到的缓存啦
'Access-Control-Max-Age: 1800'
//允许的请求类型
'Access-Control-Allow-Methods: *'
//允许的请求头字段
'Access-Control-Allow-Headers: *'
Nginx配置
location / {

        add_header Access-Control-Allow-Origin '*';  
        add_header Access-Control-Allow-Credentials "true";
		add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
		add_header Access-Control-Allow-Headers  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
	
       if ($request_method = 'OPTIONS') {
           return 204;
       }
}

如果不成功,可以尝试增加always

add_header Access-Control-Allow-Origin * always;

参考

  1. 没错,就是Access-Control-Allow-Origin,跨域
  2. 跨域资源共享 CORS 详解
  3. nginx 配置add_header ‘Access-Control-Allow-Origin’ ‘*’ 依然存在跨域问题
关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.2742s