如何解决如何从 React 中的 set-cookie 访问值?
我一直在使用 Traccar API 和 React 开发一个项目。
我的问题是我想保存 set-cookie 响应头的值,以将其存储在浏览器的 cookie 中。
我想这样做是因为,Firefox 或 Chrome 都没有在浏览器上设置 cookie。
但在两个浏览器上我得到相同的响应标题。
这是我的函数,如您所见,我尝试使用 response.headers.get()
const login = async () => {
setLoading(true);
const myHeaders = new Headers();
myHeaders.append("Authorization","Basic Og==");
myHeaders.append("Content-Type","application/x-www-form-urlencoded");
var urlencoded = new URLSearchParams();
urlencoded.append("email",user.email);
urlencoded.append("password",user.password);
var requestOptions = {
method: 'POST',headers: myHeaders,body: urlencoded,credentials: 'include',redirect: 'manual',}
trackPromise(
fetch("http://x.x.x.x:7082/api/session",requestOptions)
.then((response) => {
if (response.ok) {
console.log('Cookie: '+response.headers.get('set-cookie'))
redirect();
} else {
alert('There was a problem');
}
})
.catch(error => console.log('error',error))
);
}
但是每次调用请求,结果都是一样的。
此外,我尝试修改 credentials
标头并使用 credentials: include
、credentials: same-origin
和 credentials: omit
,但仍然没有运气。
我被这个问题困扰了一个多星期,我注意到的一件事是在 Postman 中测试 API 方法时,JSESSIONID 值来自 set-cookie,始终使用,该值作为响应头返回,但在代码片段中,也设置为请求头,这是有道理的,因为使用 Postman 的 API 上的每个方法都将其用作一个请求头。
那么,如何获得这个值?
解决方法
类似的东西fetch: Getting cookies from fetch response
检查您可以阅读哪些标题:
document['familyId']
如果已经设置了 cookie,请尝试以 FutureBuilder
的身份访问它们。
(它不适用于标记为 httpOnly 的 cookie)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。