HTTP-запрос в node.js, возвращающий response.statuscode как запрещенный - PullRequest
0 голосов
/ 03 января 2019

Я хочу POST данные на 3-й части веб-сайта через node.js, но я получаю ошибку 403. У меня есть этот код в браузере:

$.ajax("/login",{ /// here i am in https://255.255.255 /// I am obscuring the real host ip

 data:{
   username:"username",
    password: "password",
     autologin:"true"},

 method:"POST"

}).done(function(msg) {
      console.log( msg );
       /// another $.ajax request here
    }); 

Работает нормально.Проблема начинается, когда я пытаюсь использовать его в node.js, я получил этот код после некоторой помощи пользователей SO:

var request = require('request');

request({
    method: "POST",
    baseUrl: "https://255.255.255",
    uri: "/login",
    form: {
      username: "username",
      password: "password",
      autologin: "true"
    }
  },
  function (error, httpResponse, body) {
    if (error) {
      console.error(error);
    }
    console.log(httpResponse.statusCode);
    console.log(body);
  });

Здесь я получаю httpResponse.statusCode как 403 - запрещено.Я не ожидал этого, потому что мой $.ajax код работает и не возвращает мне эту ошибку .

Что я пробовал до сих пор:

  • setuser-agent как "node.js", "request", "Mozilla / 5.0"
  • использовать axios (также получено сообщение об ошибке 403)
  • использовать запрос-запрос

также я хотел бы знать:

  • как увидеть, как работают оба кода, чтобы узнать, в чем разница между * на 1032 *
  • больше пользовательских агентов, и какой у меня естьиспользовать для имитации браузера
  • , если есть лучший пакет npm для публикации данных на сайтах третьей части

Заранее спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Код jQuery отправляет имя пользователя и пароль в виде открытого текста или использует авторизацию?Вы можете проверить в консоли браузера, когда вы делаете запрос.Обычно имя пользователя / пароль отправляются в виде заголовка авторизации, в заголовках запроса вы увидите что-то вроде «Авторизация: базовая».

Если это так, вам нужно будет повторить это и в Node.Вы можете проверить документацию запроса для получения дополнительной информации, как - это довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...