gpt4 book ai didi

node.js - Cookie 不随 request.js 一起发送

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:35 26 4
gpt4 key购买 nike

所以我启动并运行了一个 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 请求的授权。我似乎无法弄清楚我做错了什么。任何建议或帮助将不胜感激。

最佳答案

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

关于node.js - Cookie 不随 request.js 一起发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com