我正在尝试学习node.js,我正在开发一个实用程序来登录网站,然后提取一些信息。我已经读过重定向应该在文档中“自动工作”,但我无法让它工作。
request({
url: start_url,
method: 'POST',
jar: true,
form: {
action: 'login',
usertype: '2',
ssusername: '****',
sspassword: '****',
button: 'Logga in'
}
}, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body, response.statusCode);
request(response.headers['location'], function(error, response, html) {
console.log(html);
});
}
});
首先,我做了一个POST,它给出了一个respone.statusCode == 302.正文是空的。我希望正文包含重定向的页面。
然后我在response.headers ['location']找到了“新”网址。使用它时,正文只包含一个“未登录”页面,而不是我期望的页面。
任何人都知道如何解决这个问题?
答案 0 :(得分:22)
默认情况下, GET 请求仅会启用重定向。要按照 POST 中的重定向进行操作,请在配置中添加以下内容:
followAllRedirects: true
更新代码:
request({
url: start_url,
method: 'POST',
followAllRedirects: true,
jar: true,
form: {
action: 'login',
usertype: '2',
ssusername: '****',
sspassword: '****',
button: 'Logga in'
}
}, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body, response.statusCode);
request(response.headers['location'], function(error, response, html) {
console.log(html);
});
}
});