Ax ios отправка запроса без отправки параметров - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть тег scipt, в котором я отправляю запрос к маршруту через топор. ios .Ax ios не передает параметры через. Вот код для топора ios:

 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  <script type="text/javascript">

const data={'firstName':"sai"}

    axios({
      url: "/",
      method: "post",
      data: data,
    })
    .then(response => {
      console.log(response);
    })
    .catch(error => console.error(error));
  </script>

Вот сторона express вещей:

app.post("/",function(req,res){
   console.log("post route");
    console.log(req.body);
})

Я console.logging данные, поступающие из почтового запроса с с помощью req.body (у меня также отлично работает парсер тела. Испытано с другими обычными формами). Требуется req, чтобы попасть на маршрут post. Если тело пустое, всегда записывается «{}». Пожалуйста, помогите мне с этим.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Опция 1: Определить объект конфигурации

let config = {
  headers: {
     'Content-Type': 'application/x-www-form-urlencoded',
  } 
}  

Обязательно: использовать массив для параметров, а не js объект для 'application / x- www-form-urlencoded'

const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');

Позвонить

 axios.post( uri, params, config )

или

 axios({
     url,
     headers: { 'content-type': 'application/x-www-form-urlencoded' }
     data: params
 })

Опция 2: Создать экземпляр API (необязательно) и установить тип содержимого по умолчанию

const api_local = axios.create({
   baseURL: 'http://localhost:1000/myapi',
});
api_local.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 

Обязательно: используйте массив для параметров, а не js объект для 'application / x- www-form-urlencoded'

const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');

Call post

 api_local.post( uri, params )
1 голос
/ 21 апреля 2020

У меня также отлично работает парсер тела. Испытано с другими обычными формами

Нормальные формы отправляют данные, закодированные как multipart/form-data или application/x-www-form-urlencoded.

Ax ios по умолчанию передает данные как application/json.

Вам нужен другой анализатор тела. Тот, который поддерживает JSON.

(или отправляет данные в другом формате )

...