ax ios тип контента не отображается в запросе - PullRequest
0 голосов
/ 03 марта 2020
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'http://',
  'headers': {
  },
  form: {
    'username': '',
    'password': ''
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});

преобразование этого в ax ios запрос:

let data = qs.stringify({   'username': '',
'password': '' })
      const options = {
        method: 'POST',data,
        headers: {  'Content-Type': 'application/x-www-form-urlencoded'},        
        url: '',
      };

      response[0] = await Axios(options).then((res) => {
      console.log("res",res)
      return res.data
    }
    ).catch((err) => {
      console.log("err status", err.response.status)
      return err.response.data
    });

выдает ошибку, и показанные заголовки не имеют закодированный URL:

   url: '',
    method: 'post',
    data: 'username=&password=',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'axios/0.19.2'
    },

Почему контент- type: url-encoded отсутствует в заголовках и отображается только Accept: 'application / json, text / plain, / '.

1 Ответ

0 голосов
/ 04 марта 2020

Вы не показываете, какую ошибку вы получаете, но способ установки вызова Ax ios кажется правильным после документации Ax ios . Поэтому я подозреваю, что проблема в том, как вы настроили свой Node.js сервер.

Если вы используете Express. js v.4 +, возможно, вы забыли настроить на своем сервере директива для разбора application/x-www-form-urlencoded типа контента, как объяснено здесь в официальной документации.

app.use(express.urlencoded({ extended: true }))

Если вы используете пакет body-parser, вам необходимо настроить свой сервер с помощью:

app.use(bodyParser.urlencoded({extended: true}));
...