Команда cURL для запроса Axios с данными json - PullRequest
2 голосов
/ 03 июля 2019

Я получил этот запрос cURL, отлично работающий на удаленном интерфейсе, так же, как он должен

curl -XGET "https://server.host:8080/peregrine" -d '{"exchanges":["kucoin", "kraken"],"volume":10}' -k

Я пытаюсь создать небольшое приложение с Vue.js для внешнего интерфейса, и мне нужно преобразовать вышеперечисленное в Axios.получить запрос.До сих пор я пробовал следующее:

axios({
      method: 'get',
      url: 'https://server.host/peregrine',
      data: {"exchanges":["kucoin", "kraken"],"volume":10}
    });

, поставив params вместо data, делает его URL-адресом, а удаленный сервер говорит, что он не получил данных.

Что такоеЯ делаю не так?Спасибо.

Ответы [ 3 ]

1 голос
/ 03 июля 2019

Вероятно, проблема может заключаться в том, что, используя GET, вы не можете передавать данные так, как вы это делаете. Вы должны передать их в качестве параметра запроса. Попробуйте изменить свой звонок с помощью:

axios.get('https://server.host/peregrine', {
    params: {"exchanges":["kucoin", "kraken"],"volume":10}
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
  .then(function () {
    // always executed
  });  
0 голосов
/ 03 июля 2019

Спасибо за ваши ответы!

Действительно, способа отправки тела данных с помощью axios.get () нет. Мы закончили настройку серверной части для приема обычных общих запросов GET.Еще раз спасибо всем, кто ответил!

0 голосов
/ 03 июля 2019

GET-запросы не должны иметь тела запросов.

CURL позволит вам сделать запрос GET с одним, но XMLHttpRequest и fetch (API-интерфейсы HTTP в браузерах, которые переносятся по осям) не будут.

Вместо этого сделайте запрос POST. Возможно, вам придется изменить код на стороне сервера, чтобы поддержать это.

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