在 ajax 个请求中将 cookie 传输到同一域中的站点
Transmit a cookie to sites on the same domain in ajax requests
我的站点 a.domain
公开了一个页面,其脚本执行 AJAX 查询(使用提取)到 b.domain
。
在第一次访问 a.domain
期间,将使用以下参数向客户端发送一个 cookie:
"httpOnly" : "true"
"secure" : "true"
"domain" : ".domain"
"sameSite" : tried Strict, Lax and None
b.domain
有以下响应 headers :
"Access-Control-Allow-Origin" : "a.domain"
"Access-Control-Allow-Credentials : true
"Access-Control-Allow-Methods" : "GET, PUT, POST, DELETE, OPTIONS".
"Access-Control-Allow-Headers" : "Content-Type, Authorization, Content-Length, X-Requested-With, Credentials"
获取请求的 headers 是:
"Content-Type" : "application/json"
"Accept" : "application/json"
"Credentials" : "include"
Cookie 可以很好地传输到 a.domain
或者如果我直接访问 b.domain
,但不会在 AJAX 请求中传输。
编辑:无论 samesite 参数的值如何,问题都是一样的。
有办法吗?谢谢
好的,找到了。
该问题与对获取请求中的凭据参数的误解有关。 credentials
不是 header 而是请求的参数。
一旦参数超出 headers(并以小写形式书写),一切正常。
我的站点 a.domain
公开了一个页面,其脚本执行 AJAX 查询(使用提取)到 b.domain
。
在第一次访问 a.domain
期间,将使用以下参数向客户端发送一个 cookie:
"httpOnly" : "true"
"secure" : "true"
"domain" : ".domain"
"sameSite" : tried Strict, Lax and None
b.domain
有以下响应 headers :
"Access-Control-Allow-Origin" : "a.domain"
"Access-Control-Allow-Credentials : true
"Access-Control-Allow-Methods" : "GET, PUT, POST, DELETE, OPTIONS".
"Access-Control-Allow-Headers" : "Content-Type, Authorization, Content-Length, X-Requested-With, Credentials"
获取请求的 headers 是:
"Content-Type" : "application/json"
"Accept" : "application/json"
"Credentials" : "include"
Cookie 可以很好地传输到 a.domain
或者如果我直接访问 b.domain
,但不会在 AJAX 请求中传输。
编辑:无论 samesite 参数的值如何,问题都是一样的。
有办法吗?谢谢
好的,找到了。
该问题与对获取请求中的凭据参数的误解有关。 credentials
不是 header 而是请求的参数。
一旦参数超出 headers(并以小写形式书写),一切正常。