gpt4 book ai didi

javascript - Angular:未创建 Cookie

转载 作者:可可西里 更新时间:2023-11-01 17:06:10 24 4
gpt4 key购买 nike

我正在使用标记 withCredentials = true 执行 /login POST 请求。响应是预期的,如果我使用 Chrome Dev Tools -> Network 检查,我可以看到一个名为 Set-Cookie 的响应 header ,其中包含以下内容:

Set-Cookie:JSESSIONID=1944a870623c3499ea938df17a5g; Path=/; Secure; HttpOnly

但是...

浏览器中未创建 cookie 😎 (如果我既不刷新页面)。顺便说一句:在 Postman 中创建了 cookie...

我正在通过 Angular v.2.4.2

处理请求

理论上 cookie 会自动创建,不是吗?顺便说一句,我无法访问 Set-Cookie 响应 header :

const options = new RequestOptions({ headers, withCredentials: true });
const body = `username=${username}&password=${password}`;

return this.http.post(`${host}${basePath}/login`, body, options)
.do(r => {
console.log(r.headers.get('Set-Cookie')); // Nothing… :( Only I can access to Content-Type header
})
.map(r => r.json())

我想这很正常,如果理论上 cookie 会自动创建,但不会创建....

为什么没有创建 cookie?我该如何解决?

非常感谢! 😊

最佳答案

事实上,您不能通过 javascript 访问 cookie,但这并不意味着它没有被创建。

只有 Http 的 cookie 不能从 javascript 访问(这是为了防止 XSS 攻击)

您的浏览器将在每个包含 withCredentials: true 的请求中自动发送给定的 cookie。

几天前我遇到了类似的问题。看这里:

Angular2 http post - how to send Authorization header?

Unable to exchange cookie between Spring and Angular2

更多关于 httponly cookies 和 XSS

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Secure_and_HttpOnly_cookies https://www.owasp.org/index.php/HttpOnly

https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

关于javascript - Angular:未创建 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41741412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com