При использовании функции jQuery Ajax при указании обработчиков ошибок и успешных действий можно ожидать, что назначенная функция обработчика ошибок обнаружит недопустимые файлы и ошибки 404, но по какой-то причине мой код этого не делает.
Код:
// using jQuery 3.4.1
// this code has been taken from a larger function, but the issue can be replicated by pasting
// the following code into the JS Console.
var scriptPath = 'http://mywebserver.localhost/application/invalid.js';
jQuery.ajax( {
async: false,
type: 'GET',
url: scriptPath,
crossOrigin: false,
data: null,
global: false,
cache: true,
success: function() {
debugger;
// do some stuff
onResult();
},
error: function( jqXHR, textStatus, errorThrown ) {
debugger;
Lib.showNetworkErrorAlert( jqXHR, textStatus, errorThrown );
},
dataType: 'script'
} );
Это приводит к:
Uncaught Error From: ~ unknown ~
Ошибка: Uncaught SyntaxError: Неожиданный токен '< 'in: http://mywebserver.localhost/ ........ строка: 1
Просто чтобы прояснить, я уже рассмотрел вопросы SO, но те Я обнаружил тенденцию сосредоточиться на причине ошибки. Я знаю, что является ошибкой «Неожиданный токен
Я пытаюсь выяснить и понять, почему эта ошибка появляется вместо указанного обычного обработчика ошибок. По крайней мере, я бы подумал, что установка dataType в скрипт заставит его немного лучше понять, эй, это файл ошибок HTML 404, а не скрипт.
Любая помощь и понимание очень приветствуется.
Обновление: Вот вкладка Сеть от Dev Tools, показывающая, что она возвращает 404.