@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'))
  • Вопрос задан
  • 3069 просмотров
Решения вопроса 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, скорее всего достаточно исправить их.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы