При помощи 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
Проблема решена. Для использования fetch в старых браузерах нужно
fetch(url, {
credentails: 'same-origin'
});
Инструкции в README к fetch. До этого контроллер возвращал отрицательный результат проверки авторизации в виде html, потому и была ошибка парсинга json. Готовый рабочий код будет в исходниках на github по ссылкам внизу в первом посте.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Я использую шаблоизатор ejs в своём проектеМеня в нём всё устранивает, но мне не нравится, что мой index
У меня возникла ошибка, которую я не могу уже довольно долго решитьИспробовал всё, что смог найти, ничего не помогло