Axios AJAX вызывает нулевой параметр - PullRequest
0 голосов
/ 07 октября 2018

Я использую Vuejs для создания своего внешнего интерфейса для моего проекта.

При создании одного компонента ('TimeCapsy.vue') я выполняю AJAX-вызов моего бэкэнда следующим образом:

created: function () {
        if (verify.verify_login()) {
          let token = this.$cookies.get('jwt_us_cas');
          let params = {'jwt': token};
          console.log(params);
          axios({
            method: 'post',
            url: dev.HOST+'getuserinfoobject',
            params: queryString.stringify(params)
          })
            .then(response => {
              console.log(response.data)
            })
        }
      }

Как видите, я использую

this.$cookies.get('jwt_us_cas');

для получения веб-токена json, который я установил на клиенте при входе в систему.

Я использую queryStringБиблиотека для строковых параметров для моего запроса.

Я также пробовал без вызова queryString.stringify(params), но получаю ту же ошибку, например, параметр по-прежнему обнуляется.

Когда я смотрюв журнале консоли, где я проверяю переменную params, я получаю следующий вывод:

{jwt: " мой токен приходит сюда "}

Итак, я вижу,что он получает правильное значение из cookie.

Но когда я проверяю ответ из своего бэкэнда (PHP), я получаю эту ошибку:

Undefined index: jwt in <b>D:\casb\public\index.php</b> on line <b>52</b>

Конечно, я знаю, что это значит, что jwt равно нулю, но я не могу понять, почему.

Как я уже сказал, перед тем, как позвонить, я проверяю параметры, и они показывают токен.

Я проверил конечную точку с почтальоном и токеном в качестве параметра jwt, и он возвратил успешный вызов с правильным ответом.

Правильный ответ - это просто вложенный объект с некоторой информацией в нем..

Моя конечная точка PHP также довольно проста:

Router::add('/getuserinfoobject', function () {
    $response['response'] = User::getUserInfoObject($_POST['jwt']);
    echo json_encode($response);
}, 'post');

Так что я предполагаю, что прямо перед или в моем вызове он обнуляет мой параметр.Но я не могу понять как, так как я делаю много запросов и у меня никогда не было этой проблемы.

1 Ответ

0 голосов
/ 07 октября 2018

Из документов Axios

params - это параметры URL, отправляемые с запросом

Это означает, что вы должны получитьзначение с PHP $_GET.

или $_REQUEST (в котором хранятся $_GET, $_POST. Также $_COOKIE).

С другой стороны, вы можете использовать data ключ как указано в документации

data - данные, которые будут отправлены в качестве тела запроса

Применимо только для методов запроса PUT, POST и PATCH

Таким образом, значение будет доступно в $_POST

axios({
  method: 'post',
  url: dev.HOST+'getuserinfoobject',
  data: {
     jwt: token
  }
})
...