error.response не определен, если не удается запрос Axios - PullRequest
0 голосов
/ 13 ноября 2018

Я не могу получить доступ к коду ошибки (ответа), если в моем приложении Vue.js произошел сбой запроса axios. Я не могу понять, почему ответ не определен как в «.catch», так и в «axios.interceptors.response». Я следовал этой инструкции , которая демонстрирует, что «error.response» может быть легко доступен с помощью кода, подобного следующему:

axios.interceptors.response.use(
  (response) => { 
    console.log(response);
    return response;
  },  
  (error) => {
    handleApiFail(error.response);
  });

Если я добавлю этот код в «main.js» в моем приложении, «handleApiFail» вызывается при сбое запроса, но error.response не определен во второй лямбде, а первая лямбда не вызывается. Если запрос выполнен успешно, определяется «ответ» в первой лямбда-выражении с кодом состояния.

EDIT1 : это не вариант, потому что мои запросы OPTIONS не требуют авторизации. Также есть различные сообщения , описывающие ту же ситуацию.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Отсутствие заголовка

access-control-allow-origin: *

в ответе привело к тому, что браузер заблокировал мой запрос.

Добавление заголовка заставляет работать axios.

0 голосов
/ 13 ноября 2018

Это особенность аксиос. Быстрое решение этого заключается в сериализации ответа:

JSON.stringify(error)

Пожалуйста, обратитесь к этой проблеме GitHub для получения дополнительной информации: https://github.com/axios/axios/issues/960

Как кто-то там указал, вы можете проверить код ошибки в действии и запустить другой коммит в зависимости от него.

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