📅  最后修改于: 2023-12-03 15:15:45.083000             🧑  作者: Mango
HTTP 标头中的访问控制允许凭据(Access-Control-Allow-Credentials)用于控制浏览器是否可以将凭据(如 Cookie、HTTP 认证和客户端 SSL 证书等)包含在跨源请求中。本文将为程序员介绍这个标头的使用方法和注意事项。
在跨源请求中,浏览器会按照同源策略限制从源 A 的页面向源 B 发送请求,并且不会包含凭据信息。这是为了保护用户的隐私和安全。然而,在某些情况下,我们可能需要在跨源请求中包含凭据,例如在进行跨域身份验证时或访问需要登录状态的资源时。
要允许跨源请求携带凭据,需要在响应中设置 Access-Control-Allow-Credentials
标头。这个标头的值可以是 true
或 false
。下面是一个设置为允许凭据的例子:
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
当设置 Access-Control-Allow-Credentials
为 true
时,Access-Control-Allow-Origin
标头也必须是具体的源(即不能是 *
),并且请求的源必须与其匹配。如下所示:
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://example.com
如果没有设置 Access-Control-Allow-Credentials
或设置为 false
,则浏览器将不会包含凭据信息。
除了 Access-Control-Allow-Credentials
,还有其他相关的标头可以用于处理跨源请求:
Access-Control-Allow-Origin
:指定允许的跨源请求的来源,可以是具体的源或 *
。Access-Control-Allow-Methods
:指定允许的 HTTP 方法。Access-Control-Allow-Headers
:指定允许的自定义标头。Access-Control-Allow-Credentials
标头允许服务器指示浏览器是否可以在跨源请求中包含凭据信息。在进行跨域身份验证或访问受限资源时,我们可以使用这个标头来控制浏览器的行为。在设置此标头时,需要注意与 Access-Control-Allow-Origin
标头的配合使用,以确保安全性和功能的正确性。