首页 > 解决方案 > React App,Express Server - 设置cookie不存储在浏览器中

问题描述

长短是...

我的 express 后端设置了一个 cookie 并将其发送回客户端,当我使用 Postman 和我的 React Native 应用程序时,一切都很好。问题是通过 ReactJs 完成的网络版本发出相同的请求,但 cookie 存储在浏览器中。

所以我知道 cookie 正在工作,但不适用于 web 版本,当我创建一个测试端点http://localhost:3000/server并直接从存储 cookie 的浏览器调用它时,这很奇怪。

所以这是我的代码对服务器进行简单的提取,然后发送回一个 cookie:

  const fetchData = async () => {
    try {
      const res = await fetch(`http://192.168.0.11:3000/server/`, {
        credentials: "include",
      });
      if (res.ok) {
        const resData = await res.json();
        console.log({ resData });
      }
    } catch (err) {
      console.log({ err });
    }
  };

请求成功返回,但未存储 cookie

在此处输入图像描述

从浏览器直接访问相同的端点会导致:

在此处输入图像描述

在此处输入图像描述

发送时从响应标头中提取的内容表明 cookie 是在响应中发送的,只是没有存储在前端

在此处输入图像描述

标签: reactjsreact-nativeexpresscookiessession-cookies

解决方案


是一个非常简单的修复

http://localhost:3001用于反应应用程序,我只是简单地使用了 IP 地址http://192.168.0.11:3001


推荐阅读