[axios]我如何保存 cookie?以供之后的请求使用。

2024-08-22 336 views
0

抱歉我的英语不好。

我看过api,也搜索了很长时间。

环境:Node 8.x axios 版本:0.17.0

我需要让页面 A 保存 cookie,然后我可以发布带有 cookie 的页面 B。有任何像request.jar()这样的对象吗?我如何保存和使用 cookie。

回答

6

withCredentials: true

6

图像

@Naramsim 好像没带来什么变化=。=

6

@shalldie 首先,withCredentials选项是在浏览器环境中使用的。

Axios 在 node 端使用 node 自带模块httphttps实现请求,在浏览器端则使用 xhr 对象来实现。

所以你可以直接设置cookie,

const headers = {
  'cookie': result.headers['set-cookie']
}
await instance.post('/cookie', {mes: 'test'}, headers)

顺便说一句,不要忘记在服务器端设置 cookie-parser 中间件

const cookieParser = require('cookie-parser')
....
app.use(cookieParser())
5

@hwen 非常感谢。大开然开朗

9

@hwen 还是有些问题。如果只是简单的把字符串这样提取出来不处理,并且不能正常识别过期、路径等信息,同样也当做cookie的键。

9

@shalldie 这除了你怎么解析 cookie 串就可以了,显然​​怎么传给知道了,就看你后面要怎么解析啦。也许你可以看看这个 cookie 包。

4

@shalldie 你现在可以关闭它吗?

3

谢谢。

3

哈哈,国人喜欢粘代码,学不会紫色问题。另外:你的场景推荐你有要求,axios无休止力,我有一个爬虫项目,你遇到的问题是一样的,axios和superagent我都试过了,不好使,但要求轻松无压力

6

@shangxinbo 嗯,一直用的要求,当时想提前统一,所以尝试一下axios