Измените настройки POST-запроса на Goip с Node js - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу сделать панель управления всеми устройствами Goips из одного места! Мой Nodejs сервер отправляет запросы на эти устройства с базовым c заголовком авторизации. Сервер извлекает данные HTTP или XML. Все работает. Но когда я отправляю запрос на публикацию с formData, я также получаю ответ HTML, но настройки Goip не меняются, а иногда даже сбрасываются.

Я использую форму реагирования с избыточностью. Когда я отправляю, я преобразую объект со всеми необходимыми значениями формы в FormData и отправляю на мой сервер.

Запрос представляет собой обертку для топора ios

const handlePreferenceSubmit = (data) => {
  let formValues = [];

  for( name in data ) {
    formValues.push( encodeURIComponent( name ) + '=' + encodeURIComponent( data[name] ) );
  }

  let formData = formValues.join( '&' ).replace( /%20/g, '+' );

  let body = {
    goipId: goip.id,
    formData
  }

  Request(Api.route('config') + '/set', body, 'auth', 'post', '#preloader')
  .then(response => console.log(response))
  .catch(err => console.log(err))
}

Затем Мой сервер отправляет данные формы на устройство Goip с базовой авторизацией c.

setConfig(req, res) {

  let { goipId, formData } = req.body;

  this._table.findByPk(goipId).then(goip => {

    let filters = {}
    filters.type = 'ata_in_setting';
    filters = Helper.encodeURI(filters, "?");

    let pass = decryption(unescape(goip.password));
    let headers = Headers.goipAuthForm(goip.login, pass);

    if(!headers) return res.status(500).json({ error: 'goip has no login or password' })

    Request(`${goip.ip}/default/en_US/config.html${filters}`, formData, headers, 'POST').then(response => {
      res.status(200).json(response);
    }).catch(err => res.status(500).json({ "error": err }));

  }).catch(err => {
    console.log('response err', err);
    res.status(500).json({
      "description": "Can not access Admin Board",
      "error": err
    });
  })
}

И я понятия не имею, в чем проблема ... Я получаю ответ, но настройки не меняются. В веб-интерфейсе goip просто отправьте форму с действием. Я не понимаю, как отправить форму с моего сервера.

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