繁体   English   中英

在 koa 服务器中检查日志时,不会从浏览器(本地主机)发送 cookie

[英]cookie is not sent from browser (localhost) when check logs in koa server

我将 Koa 用于 api 服务器,在前端使用 React,并将 Axios 用于 xhr。

当客户端在服务器端渲染中向 api 服务器请求时,这意味着在 node.js 中,我可以看到所有来自 node.js 的标头。 当我使用 PostMan 进行测试时,我也看到了请求中包含的所有标头。 但是,当客户端进入 CSR 并执行 axios 请求时,我在 api 服务器中的日志中看不到任何标头,除了

{
  accept: 'application/json',
  'content-type': 'application/json',
  'user-agent': 'axios/0.19.2',
  host: 'localhost:5001',
  connection: 'close'
}

在检查 chrome 检查器 - 网络选项卡时,我可以找到 cookies 包含在请求标头中,但找不到为什么我的本地主机浏览器无法发送带有 cookies 的标头。

对于那些想知道我如何专门设置前端和后端的人,

考阿

app.use(cors({
  origin: verifyOrigin, // http://localhost:5000
  credentials: true,
}));

...

cookies.set("someCookieKey", someCookieValue, {
      httpOnly: true,
      maxAge: 1000 * 60 * 60 * 24 * 7,
    });

在反应

const http = axios.create({
  baseURL,
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
  }
})

http.defaults.withCredentials = true;


在偶然发现了一段时间后,我发现我向服务器发送请求而没有请求 object。

如果 api 服务器使用 cookies 或 header 处理某些业务逻辑,则最好检查客户端是否省略了 cookie。

在这种情况下,可能httpOnly: true是一个问题。 该参数会阻止浏览器中的 js 读取 cookie。 尝试将值设置为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM