В wa.core.js устанавливается общий обработчик ajax-ошибок
$(document).ajaxError(function(e, xhr, settings, exception) {
// Ignore 502 error in background process
if (xhr.status === 502 && exception == 'abort' || (settings.url && settings.url.indexOf('background_process') >= 0) || (settings.data && settings.data.indexOf('background_process') >= 0)) {
console && console.log && console.log('Notice: XHR failed on load: '+ settings.url);
return;
}
Однако settings.data не всегда строка или массив и в этом случае проверка settings.data.indexOf('background_process') вызывает ошибку.
Получить такое можно если в методе $.ajax создавать собственный xhr объект, который будет в качестве data использовать объект FormData. Такое нужно, например, при реализации загрузки файлов. Если в список загружаемых файлов добавить файл, который невозможно прочесть (чтобы вызывать ошибку и её обработчик), то в консоль вывалится ошибка js об отсутствии метода indexOf и выполнение обработчика аварийно завершится.
Хорошо бы settings.data проверять на typeof или наоборот instanceof FormData.
1 комментарий
Мы выпустили обновление фреймворка Webasyst, в котором улучшили обработку ошибок AJAX-запросов в файле wa.core.js. Обновление можно установить в «Инсталлере».
Проверьте, пожалуйста. Сообщите нам, если проблема сохранилась.
Спасибо вам за то, что помогаете улучшать программные продукты Webasyst!