【问题标题】:Cookie not sending with request.jsCookie 未与 request.js 一起发送
【发布时间】:2014-05-19 11:07:22
【问题描述】:

所以我启动并运行了一个 API,但是我决定从使用 nano 切换到仅使用 request。但是,由于某种原因,我现在似乎无法将 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 请求的授权。我似乎无法弄清楚我做错了什么。任何建议或帮助将不胜感激。

【问题讨论】:

    标签: node.js cookies request


    【解决方案1】:

    请求是异步的,因此您的两个请求是同时发出的(在您的 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);
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 2013-10-18
      相关资源
      最近更新 更多