Axios отправляет мой простой JSON в двоичном формате данных - PullRequest
0 голосов
/ 31 августа 2018

Когда мой код Vuejs пытается опубликовать JSON, серверная часть вернула ошибку 400.

Я нашел ключ к этому с помощью захвата сети Chrome.
Мой код Axios отправил JSON в двоичном формате данных.

curl 'http://localhost:5000/api/auth/login'  \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Accept: application/json' \
  --data-binary '{"username":"admin","password":"ehllow"}'

Но я не знаю, как это работает.
Мой ожидаемый запрос

curl ... -D '{"username":"admin","password":"ehllow"}'`

не --data-binary

Вот мой код JavaScript.

axios({
  method: 'post',
  url: '/api/auth/login',
  data: {
    "username": "admin",
    "password": "ehllow"
  },
  config: {
    headers: {
      'Content-Type': 'application/json'
    }
  }
})
.then(function (response) {
  //handle success
  console.log(response);
})
.catch(function (response) {
  //handle error
  console.log(response);
});

Как изменить код аксиоса для отправки данных в формате json на обычные данные (-D)

1 Ответ

0 голосов
/ 21 мая 2019

У меня был тот же вопрос, ответ был здесь: axios пост-запрос на отправку данных формы

Короче говоря:

let data = new FormData();
data.set("username", "admin");
data.set("password", "ehllow");
axios({
  method: 'post',
  url: '/api/auth/login',
  data: data,
  config: {
    headers: {
      'Content-Type': 'application/json'
    }
  }
})

Бросил меня за цикл, так как двоичные данные читаются иначе, чем данные формы.

...