跨域资源共享CORS整理

tech2023-06-17  111

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 *; add_header Access-Control-Allow-Headers *; if ($request_method = 'OPTIONS') { return 204; } }

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

add_header Access-Control-Allow-Origin * always;

参考

没错,就是Access-Control-Allow-Origin,跨域跨域资源共享 CORS 详解nginx 配置add_header ‘Access-Control-Allow-Origin’ ‘*’ 依然存在跨域问题
最新回复(0)