Я использую Request, Jsdom и NodeJS для входа на веб-страницу. Согласно API запроса,
followRedirect
— следовать ответам HTTP 3xx как перенаправлениям (по умолчанию: true
). Это свойство также может быть реализовано как функция, которая получает объект ответа в качестве одного аргумента и должна возвращать true, если перенаправления должны продолжаться, или false в противном случае.
Учитывая, что по умолчанию это значение true, я думаю, что этот запрос даст мне перенаправленную страницу вместо страницы перенаправления посередине.
Мой код:
request(loginPageURL, function(error, response, body) {
/*Error handling removed for brevity*/
jsdom.env({
html: body,
scripts: [
'http://code.jquery.com/jquery-1.7.1.min.js'
],
done: function(err, window) {
//Set login fields
var form = $('#authorizationForm');
var data = form.serialize();
var url = form.attr('action') || 'get';
var type = form.attr('enctype') || 'application/x-www-form-urlencoded';
var method = form.attr('method');
request({
url: url,
method: method.toUpperCase(),
body: data,
headers: {
'Content-type': type
}
}, function(error, response, body) {
if (!error) {
console.log("Response.statusCode:" + response.statusCode);
console.log("Body:" + body);
Вместо того, чтобы дать мне домашнюю страницу после входа в систему, вывод:
Response.statusCode: 302
Body: To access this site, go to <a href="...">
Хотя получение кода с перенаправленной страницы может быть полезным, как мне перейти на страницу, на которую меня перенаправляет?