使用Cookies的Node.js Axios请求

5

我有类似于浏览器(Netscape?)cookie的nscookie,如下图所示:nscookie;还有JSON格式的cookie,如下图所示:jsoncookie

我该如何将这些cookie传递给request呢?

代码源:

const
    fs = require('fs'),
    https = require('https'),
    axios = require('axios');

function reqTest()
{

    axios.default.request({
        'url': 'google.com',
        'method': 'post',
        'headers':
            {
                'Cookie': 'cookie1=?; cookie2=?;'
            }
    }
    ).then(res => {
        console.log(res);
    })
}
1个回答

6

启用withCredentials选项(设置为'true')应该可以解决您的问题。

请尝试以下操作:

const
    fs = require('fs'),
    https = require('https'),
    axios = require('axios');

function reqTest()
{

    axios.default.request({
        'url': 'google.com',
        'method': 'post',
        'headers':
            {
                'Cookie': 'cookie1=?; cookie2=?;'
            },
        'withCredentials': 'true' // ADD THIS LINE
    }
    ).then(res => {
        console.log(res);
    })
}

您可以在axios实例中启用此属性,从而更改axios的默认设置并应用于所有请求:
axios.defaults.withCredentials = true;

axios.post(url, body).then(...).catch(...); // withCredentials is automatically enabled

请汇报结果。


是的,这个选项确实很需要,但我仍然找不到关于如何将 Netscape 格式的 cookie 放入 axios 请求体中的信息。 - kanekipos2
我完全不明白它如何运作,我有一个可以授权登录的登录 cookie,就像 session cookie 一样,我需要使用该 cookie 发送请求以获取 HTML 文档,就好像我已经登录账户一样。 - kanekipos2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接