微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 React 中的 set-cookie 访问值?

如何解决如何从 React 中的 set-cookie 访问值?

我一直在使用 Traccar API 和 React 开发一个项目。

我的问题是我想保存 set-cookie 响应头的值,以将其存储在浏览器的 cookie 中。

我想这样做是因为,Firefox 或 Chrome 都没有在浏览器上设置 cookie。

Cookie not set

但在两个浏览器上我得到相同的响应标题

Response header

这是我的函数,如您所见,我尝试使用 response.headers.get()

获取 set-cookie 的值
    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))
        );
    }

但是每次调用请求,结果都是一样的。

Null value

此外,我尝试修改 credentials 标头并使用 credentials: includecredentials: same-origincredentials: omit,但仍然没有运气。

我被这个问题困扰了一个多星期,我注意到的一件事是在 Postman 中测试 API 方法时,JSESSIONID 值来自 set-cookie,始终使用,该值作为响应头返回,但在代码片段中,也设置为请求头,这是有道理的,因为使用 Postman 的 API 上的每个方法都将其用作一个请求头。

那么,如何获得这个值?

解决方法

类似的东西fetch: Getting cookies from fetch response

检查您可以阅读哪些标题:

document['familyId']

如果已经设置了 cookie,请尝试以 FutureBuilder 的身份访问它们。 (它不适用于标记为 httpOnly 的 cookie)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?