繁体   English   中英

Cookie不与request.js一起发送

[英]Cookie not sending with request.js

所以我启动并运行了API,但我决定从使用nano切换到仅使用请求 但是我出于某种原因似乎无法将cookie现在发送回服务器。 这是我一直在测试的代码示例。

var request = require('request')
var cookieJar = request.jar();
var myCookie;

request({
    method: 'POST',
    uri: 'http://127.0.0.1:5984/_session',
    form: {
        name: 'test',
        password: 'test123'
    }

},
function(err, res, body) {
    if (err) { console.log(err) };

    console.log(res.statusCode);
    console.log(res.headers);
    console.log(body);

    myCookie = request.cookie(res.headers['set-cookie'][0]);

    cookieJar.setCookie(myCookie, 'http://127.0.0.1:5984/_session');


});

request({
    method: 'GET',
    uri: 'http://127.0.0.1:5984/db',
    jar: cookieJar
},
function(err, res, body) {
    if (err) { console.log(err) };

    console.log(cookieJar);
    console.log(res.statusCode);
    console.log(res.headers);
    console.log(body);
});

正如您所看到的,我能够获取并设置cookie但是我没有获得GET请求的授权。 我似乎无法弄清楚我做错了什么。 任何建议或帮助将不胜感激。

请求是异步的,因此您的两个请求是在同一时间建立的(在您的cookieJar设置之前)。 试试这个:

var request = require('request')

request({
    method: 'POST',
    uri: 'http://127.0.0.1:5984/_session',
    form: {
        name: 'test',
        password: 'test123'
    }

},
function(err, res, body) {
    if (err) { return console.log(err) };

    console.log(res.statusCode);
    console.log(res.headers);
    console.log(body);

    var myCookie = request.cookie(res.headers['set-cookie'][0]);

    var cookieJar = request.jar();
    cookieJar.setCookie(myCookie, 'http://127.0.0.1:5984/_session');

    request({
        method: 'GET',
        uri: 'http://127.0.0.1:5984/db',
        jar: cookieJar
    },
    function(err, res, body) {
        if (err) { return console.log(err) };

        console.log(cookieJar);
        console.log(res.statusCode);
        console.log(res.headers);
        console.log(body);
    });
});

暂无
暂无

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

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