无法在axios中获取cookie值,

jtoj6r0c  于 5个月前  发布在  iOS
关注(0)|答案(4)|浏览(93)

描述问题

我在Express服务器上创建了一个post请求,用于设置cookie,然后get请求用于获取cookie。在Postman中可以正常工作,但在axios中无法正常工作。

示例代码

const express = require("express");
const cookieParser = require("cookie-parser");
const axios = require("axios");
const cors = require("cors");

const app = express();
const corsConfig = {
origin: ["http://localhost:9779"],
credentials: true,
};
app.use(cookieParser());
app.use(cors(corsConfig));

app.post("/set", (_, res) => {
res.cookie("cookieName", "cookieValue");
res.json("ok");
});

app.get("/hello", (req, res) => {
res.json(req.cookies.cookieName);
});

app.listen(9779, async () => {
const appAxios = axios.create({
baseURL: "http://localhost:9779", // specify base URL here
withCredentials: true,
});

await appAxios.post("/set", {}, { withCredentials: true }); // use relative path
const res = await appAxios.get("/hello", { withCredentials: true }); // use relative path
console.log(res.data); // it is printing empty
});

预期行为

它应该打印出cookie的值。但现在打印的是空字符串。

axios版本

1.6.1

适配器版本

  • 无响应*

浏览器

  • 无响应*

浏览器版本

  • 无响应*

Node.js版本

v18.12.0

OS

mac os

其他库版本

  • 无响应*

其他上下文/截图

  • 无响应*
3duebb1j

3duebb1j2#

你能检查一下是否在rawHeaders中设置了吗?我正在使用nock做这件事,我也遇到了同样的问题。对我来说,set-cookie 在 rawHeaders 中设置了,但在 response.headers 中未定义。影响范围:axios v1.0.0 到 v1.6.2

5sxhfpxr

5sxhfpxr3#

Thanks @james-wee-iress . I tried but even in raw headers it is not set

ars1skjm

ars1skjm4#

你好,当我尝试在服务器文件中运行这段代码时,cookie没有被设置。然而,如果你引入前端(例如React),并在按钮点击时发起请求,cookie会被注册和存储。

我认为在一个服务器文件中完成所有操作可能存在一些问题。我不太确定问题出在哪里。我向bard(谷歌AI)查询,它给了我以下信息(如果有误,请纠正,因为我不确定):
https://g.co/bard/share/e96bec60b11a
如果这有帮助的话,请告诉我。(你也可以看到我编写的React代码和服务器代码,以便让它正常工作。)

相关问题