angularjs Cookie设置在响应标头中,但不在浏览器中

kzmpq1sx  于 2024-01-05  发布在  Angular
关注(0)|答案(1)|浏览(215)

我正在使用angularja和angular 8开发一个混合的angular应用程序。我试图实现一个需要在登录后使用POST请求设置的cookie,但问题是登录后,cookie POST请求被成功调用,cookie在网络选项卡的响应头中可见,但在响应头中不可见,在应用程序选项卡中导航到cookie时也不可见,一个cookie没有被存储。我已经尝试了所有可能的解决方案,但无济于事。任何可能的解决方案

登录成功后实现cookie的逻辑

  1. fetch(glAccountsUrl+`/api/oauth/v3/cookie`, {
  2. 'method': 'POST',
  3. 'credentials': 'include',
  4. 'headers': { 'Authorization': `Bearer ${JSON.parse(localStorage.getItem('jwt.token'))}`,'Content-Type': 'application/json','Access-Control-Allow-Credentials': true },
  5. 'body': JSON.stringify(cookieObj)
  6. })
  7. .then((response) => {
  8. return response.json();
  9. })
  10. .then((data)=>{
  11. console.log(data.message);
  12. })
  13. }

字符串

截图


的数据



wmvff8tz

wmvff8tz1#

看起来Set-Cookie在fetch调用中被过滤掉了,就像这里的规范一样。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
警告:浏览器阻止前端JavaScript代码访问Set-Cookie标头,这是Fetch规范所要求的,该规范将Set-Cookie定义为禁止的响应标头名称,必须从暴露给前端代码的任何响应中过滤掉。
我没有任何关于你可以使用的替代方案的建议,我认为如果你使用 Package XMLHttpRequest的东西,这种行为是不同的。

相关问题