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

kzmpq1sx  于 11个月前  发布在  Angular
关注(0)|答案(1)|浏览(160)

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

登录成功后实现cookie的逻辑

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

字符串

截图


的数据



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的东西,这种行为是不同的。

相关问题