从响应标头角度获取 set-cookie 值
Posted
技术标签:
【中文标题】从响应标头角度获取 set-cookie 值【英文标题】:Get set-cookie value from the response header angular 【发布时间】:2021-10-21 23:26:37 【问题描述】:我正在尝试从Response Headers
获取set-cookie
。
这样做的原因是 set-cookie 没有设置 cookie 并显示警告This attempt to set a cookie via a Set-Cookie header was blocked because its Domain attribute was invalid with regards to the current host url
。附上截图
现在我想通过以下代码从 Response Header 中获取 set-cookie 值
但它总是为set-cookie
返回null
,但返回expires
的值。
请任何人都可以指导如何解决此问题,或者如何从响应标头中获取 set-cookie
的值。
我们将不胜感激。
谢谢
【问题讨论】:
据此 (developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) 声明如下:“浏览器阻止前端 javascript 代码访问 Set Cookie 标头,按照 Fetch 规范的要求,它将 Set-Cookie 定义为禁止响应- 必须从暴露给前端代码的任何响应中过滤掉的标头名称。" 【参考方案1】:根据developer.mozilla.org set-cookie
是一个禁止的响应头名称。您无法使用浏览器端的 JavaScript 阅读它
根据 Fetch 规范的要求,浏览器阻止前端 JavaScript 代码访问 Set Cookie 标头,该规范将 Set-Cookie 定义为禁止的响应标头名称,必须从任何暴露给前端代码的响应中过滤掉。
【讨论】:
谢谢@VVS,请让我知道我该怎么做,因为这个set-cookie没有在浏览器中设置cookie,因为用户登录不起作用。这就是为什么我需要获取 cookie 或任何设置 cookie 的解决方案。 后端和前端的域是什么?如果它们不同,那么您可以尝试将它们放在同一个域中,看看是否有效。 目前在本地主机上。 那么你确认它们在两边是不同的,前端和后端的域不同吗?如果是这样,那么您将获得一个无效的 cookie 作为其不同的来源。 我可以在前端更改域吗?这样前端和后端的域是一样的。以上是关于从响应标头角度获取 set-cookie 值的主要内容,如果未能解决你的问题,请参考以下文章