CORS 标头“Access-Control-Allow-Origin”与“*、*”不匹配

问题描述 投票:0回答:1

当使用 Firefox 从服务器获取资源时,我收到以下错误消息:

跨源请求被阻止:同源策略不允许读取远程资源 原因:CORS header ‘Access-Control-Allow-Origin’ 与 ‘*, *’ 不匹配

'*, *'
是什么意思?这个值从哪里来?我无处使用该值!我的
.htaccess
文件包含以下内容,我相信这应该足以允许所有来源:

Header set Access-Control-Allow-Origin "*"
.htaccess cors
1个回答
3
投票

最简单的解释是浏览器收到的响应包含两个

Access-Control-Allow-Origin
标头:

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: *

作为 CORS 检查的一部分,浏览器使用字符序列 Access-Control-Allow-Origin

 作为分隔符,有效地将多个 
, 标头的值连接成一个
。在您的具体情况下,就好像您的浏览器收到包含以下标头的响应:

Access-Control-Allow-Origin: *, *
但是,

*, *

值绝不表示所有起源;只有由单个 
* 字符组成的 通配符
可以表示所有来源。

您需要找出响应包含多个

Access-Control-Allow-Origin

 标头的原因,并确保它最多包含一个。最有可能的是,您的 CORS 中间件正在添加一个,而您的 Web 服务器或某些反向代理正在添加另一个。

© www.soinside.com 2019 - 2024. All rights reserved.