Настроить Axios чтобы принимал только JSON

Опишу как сделать так, чтобы Axios выдавал ошибку, если пришел не JSON, а, например, ошибка PHP (html).

Пример кода для решения проблемы:

axios({
    method: 'post',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    url: 'api_handler.php',
    data: { /* ... */ }
  }
  )
.then(response =>{
  // Проверяем, являются ли подученные данные объектом, и если нет, то отправляем в блок catch
  if (typeof response.data !== 'object') {
    return Promise.reject(response.data);
  }
  this.user = response.data;
  })
.catch(function (error) {
  console.error("ERROR! NOT JSON DATA!");
  console.warn(error);
  // Это на случай, если нужно вывести HTML при реальной ошибке сервера
  if(error.response !== undefined){
    console.warn(error.response);
  }
});

Теперь, если сервер вернет не JSON, будет выведена ошибка в консоль.

К сожалению, это не самый изящный метод. По идеи должен быть какой-то способ просто указать, что axios должен принять только JSON в качестве ответа сервера, и в любом другом случае перейти в блок catch. Но я такого решения не нашел. Указание application/json в 'Content-Type' не помогает.

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODX] Генератор настроек MIGX

Документация на русском по MODX MIGX

[JS] Маска для ввода телефона +7(___)___-__-__

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

jQuery.Maskedinput js - документация на русском с примерами

[MODX] Подсказки по работе и заготовки для MiniShop2

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODx, miniShop2] Генерация YML для выгрузки в маркет

[MODX] Примеры работы с API

[OpenCart] Вывести на главную все категории с картинками

[MODX] Сайт на обслуживании (выключить сайт)

Расширение свойств товаров minishop2

[MODX, MIGX] Примеры использования

Пример перевода с помощью Yandex Translate API

Универсальная форма обратной связи — feedBackForm

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

[MODX, MiniShop2] Примеры выборки where, optionFilters, innerJoin

[Opencart] Вернуть английский язык, если вы его удалили

Отключить автозаполнение input

Настройка Webpack - несколько точек входа и разделение на чанки

[MODX] pThumb - ресайз изображений. Примеры использования.

[OpenCart] Вывести модуль напрямую через контроллер

[MODX, MIGX] Вывести getImageList только если он не пустой

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

[MODX, Quip] Более рабочий вариант

Все записи

Наш сайт использует куки, нажмите «ОК» если вы не против
OK