出于安全考虑, 源服务 nginx 配置http_origin变量,目的允许匹配 https://(.*).exp.com 所有的二级域名访问.
但是出现响应头 Access-Control-Allow-Origin 和 请求头 Origin 返回不一致,强制刷新多次才会正常,感觉像是缓存的问题.
has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value ****** that is not equal to the supplied origin.
源服务的nginx(版本:1.14.0)配置如下:
set $cors_origin "";
if ($http_origin ~ "https://(.*).exp.com") {
set $cors_origin $http_origin;
}
add_header Access-Control-Allow-Origin $cors_origin;
add_header Access-Control-Allow-Methods GET;
###看到你启用了 ETag
和 Last-Modified
,你这个站点是否使用了CDN 呢? 你的描述,应该是和缓存有关系。
你要不要针对 RequestMethod 为OPTIONS
的请求,返回一个 Cache-Control: no-cache
,并且不返回 ETag
和Last-Modified