Настроить 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

[MODx] minishop2 tips

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

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

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

[MODx] Подсказки по API

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

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

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

[PHP, JSON] Пример перевода с помощью Yandex Translate API

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

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

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

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

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

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

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

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

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

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

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

Красивое адаптивное меню под pdoMenu

Все записи

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