[英]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.