此问题已在此处有答案:
What exactly does the Access-Control-Allow-Credentials header do?(1个答案)
7天前关闭
截至6天前,社区正在审查是否重新讨论这个问题。
我的客户端通过以下头发送经过身份验证的请求:
Authorization: Bearer some-token
在响应中包含以下标题会使事情无法工作吗?
Access-Control-Allow-Credentials: false
此问题已在此处有答案:
What exactly does the Access-Control-Allow-Credentials header do?(1个答案)
7天前关闭
截至6天前,社区正在审查是否重新讨论这个问题。
我的客户端通过以下头发送经过身份验证的请求:
Authorization: Bearer some-token
在响应中包含以下标题会使事情无法工作吗?
Access-Control-Allow-Credentials: false
1条答案
按热度按时间z31licg01#
首先,要注意
false
对于Access-Control-Allow-Credentials
头来说不是一个值得注意的值。根据Fetch标准,唯一值得注意的值是true
(小写)。在响应中包含值不是true
的报头在功能上等同于从响应中省略该报头。那么问题就变成了:Access-Control-Allow-Credentials: true
是否需要响应CORS请求才能工作?Access-Control-Allow-Credentials: true
仅在响应跨域 * 凭证 * 请求时才需要,例如从不同Web源发起的请求withCredentials = true
与XmlHttpRequest
API,或credentials: 'include'
与the Fetch API。在此上下文中,术语 credentials 指的是浏览器管理的凭证或 ambient authority,即浏览器 * 自动 * 附加到请求的内容(适用时):cookie、客户端TLS证书、常规
Basic
身份验证等。如果您的 client 包含
Authentication
标头(无论使用何种身份验证方案:Basic
、Bearer
等)对另外的非凭证化请求,则在相应响应中存在Access-Control-Allow-Credentials: true
是无关的。This instance of Jake Archibald's CORS playground可能足以说服你。然而,要使事情正常工作,一个必要的条件是对预检请求的响应包括一个
Access-Control-Allow-Headers
头,其中可能列出了其他请求头名称中的Authorization
(不区分大小写),例如: