Skip to content

跨站请求携带 cookie #15

@clumsyme

Description

@clumsyme

usecase

foo.com 页面内发送了一个 bar.com 的 GET 请求, 默认不会携带 cookie,如何解决呢?

  1. fetch请求允许携带认证信息
fetch('http://bar.com', {
    credentials: 'include',
})
  1. 服务器必须允许携带认证信息
Access-Control-Allow-Credentials: true
  1. 服务器必须指定允许的域名
Access-Control-Allow-Origin: http://foo.com

此处不能使用通配符*

如果没有2、3,既是携带 cookie,返回信息也会被浏览器阻止

第三方 cookie

跨域 cookie 被视为第三方 cookie,如果浏览器被用户设置为不接受第三方 cookie,那么上述fetch请求不会设置 cookie:

Set-Cookie: pageAccess=3;

关闭第三方 cookie 的情况下,该 cookie 将不能被设置

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions