Access-Control-Allow-Origin 头
语法
http
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null
指令
*
(通配符)-
允许来自任何源的请求代码访问资源。对于不带凭据的请求,可以将文字值
*
指定为通配符。尝试将通配符与凭据一起使用会导致错误。 <源>
-
指定单个源。如果服务器支持来自多个源的客户端,它必须返回发起请求的特定客户端的源。
null
-
指定源“null”。
注意:不应使用值
null
。返回Access-Control-Allow-Origin: "null"
可能看起来很安全;然而,使用非分层方案(例如data:
或file:
)的资源的源以及沙盒文档的源会序列化为null
。许多浏览器将授予此类文档访问带有Access-Control-Allow-Origin: null
头的响应的权限,并且任何源都可以创建一个带有null
源的恶意文档。因此,应避免对Access-Control-Allow-Origin
头使用null
值。
示例
指示浏览器允许来自任何源的代码访问资源的响应将包含以下内容
http
Access-Control-Allow-Origin: *
指示浏览器允许来自源https://mdn.org.cn
的请求代码访问资源的响应将包含以下内容
http
Access-Control-Allow-Origin: https://mdn.org.cn
将可能的Access-Control-Allow-Origin
值限制为一组允许的源需要在服务器端编写代码,以检查Origin
请求头的值,将其与允许的源列表进行比较,然后如果Origin
值在列表中,则将Access-Control-Allow-Origin
值设置为与Origin
值相同的值。
CORS 和缓存
假设服务器发送的响应中的Access-Control-Allow-Origin
值是明确的源(而不是*
通配符)。在这种情况下,响应还应包含一个带有值Origin
的Vary
响应头,以指示浏览器服务器响应可能因Origin
请求头的值而异。
http
Access-Control-Allow-Origin: https://mdn.org.cn
Vary: Origin
规范
规范 |
---|
Fetch # http-access-control-allow-origin |
浏览器兼容性
加载中…