SyntaxError: JSON.parse в Firefox 60 ESR, Debian

85
07 марта 2021, 17:50

При помощи fetch получаю данные из контроллера. На самом деле не важно какие, главное что возвращаются они в json

$result = array("key" => "value");
return new JsonResponse($result);

И собственно

fetch(get_messages_count_url, {
   method: 'GET'
}).then(function(response) {
   return response.json();
}).then(function(json) {
   console.log(json);
}).catch(function(ex) {
   console.log(ex);
});

В консоли браузера Firefox 60 ESR на Debian выкидывает ошибку

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Во всех остальных браузерах (Firefox 67 Android, Chromium Debian, Chrome Android) всё отлично работает, ну то есть выкидывает в консоль json как и нужно. Сначала грешил на настройки сервера на компе, оказалось только браузер подводит, чего не хотелось бы, так как юзеры могут и со старых браузеров заходить. Пробовал полифилы промисов использовать. Но в ходе изучения и испробования XMLHttpRequest, промисы и всё остальное вполне нормально работает. Аякс тоже работает, но почему-то дольше думает. Получается что браузер не справляется примерно в строке return response.json(). Что можно сделать чтоб работало в устаревших браузерах?

Контроллер php на github на строке 161, Фронт js на github на строке110

Answer 1

Проблема решена. Для использования fetch в старых браузерах нужно

fetch(url, {
   credentails: 'same-origin'
});

Инструкции в README к fetch. До этого контроллер возвращал отрицательный результат проверки авторизации в виде html, потому и была ошибка парсинга json. Готовый рабочий код будет в исходниках на github по ссылкам внизу в первом посте.

READ ALSO
Помогите переписать код JQUERY на Javascript [закрыт]

Помогите переписать код JQUERY на Javascript [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

91
Как изменить папку views используя ejs

Как изменить папку views используя ejs

Я использую шаблоизатор ejs в своём проектеМеня в нём всё устранивает, но мне не нравится, что мой index

77
JavaScript Как решить эту проблему: Uncaught TypeError: clock is not a function at <anonymous>:1:1

JavaScript Как решить эту проблему: Uncaught TypeError: clock is not a function at <anonymous>:1:1

У меня возникла ошибка, которую я не могу уже довольно долго решитьИспробовал всё, что смог найти, ничего не помогло

116