Задать вопрос
@Dimka5

Как избавится от сообщений об ошибке синтаксического анализа XML в Firefox?

Использую XMLHttpRequest языка JavaScript. Загружаю текст из локального файла. Всё грузится и работает отлично, но Firefox в консоль выдаёт ошибку:
Ошибка синтаксического анализа XML: ошибка синтаксиса
Адрес: file:///C:/путь_к_файлу/название_файла.glsl
Строка 1, символ 1:

Понятно что XMLHttpRequest задуман для XML файлов и проверяет их синтаксис, а у меня файл с текстом шейдера где нет тегов вообще.
Можно в JavaScript коде как то отловить эту ошибку или отключить в самом Firefox?

Воспроизвести ошибку можно так
ajax = function (url) {
  xhr = new XMLHttpRequest()
  xhr.open('GET', url, false)
  xhr.send()
  return xhr.responseText
}
console.log(ajax('shader.glsl'))
  • Вопрос задан
  • 5678 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Dimka5 Автор вопроса
Узнал что есть уже во всю используемый Метод fetch: замена XMLHttpRequest прочитал о нем эту статью, понял что он работает на Promise тут почитал, которые нужны для асинхронного кода которого я так боялся из-за катострофической нечитаемости по сравнению с синхронным кодом с его колбеками и промисами, решил всё таки посмотреть в чем вообще различается синхронный и асинхронный код, попал на статью JavaScript: методы асинхронного программирования обрадовался параграфу Async/await в самом конце. Понял что сегодня не нужны не какие коллбэки, промисы и их цепочки с страшными реализациями функций. Сегодня есть только Async и Await, в глазах никаких колбеков, промисов и неразберихи. Ты просто ставишь Await перед той переменной которую нужно подождать и Async перед функцией в которой эта переменная и она остаётся на том же месте где и синхронный код. После этого желание использовать ещё когда либо XMLHttpRequest отпало напрочь.
Сделал код асинхронным, подстроил fetch под Async и Await, всё, ajax в пару строчек.
async_ajax = async function (ссылка) {
  return (await fetch(ссылка).catch(function(e) { console.log(e.message) })).text()
}

Красота
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Посмотрите какие заголовки выдает сервер при отдаче файла shader.glsl, скорее всего достаточно исправить их.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы