Доброе утро. Что должно произойти, чтобы сработал onerror xhr? Сервер иногда возвращает json данные с кодом 500, и согласно логике в этом случае должно произойти onerror, но происходит onload.
var requestError = function () {
console.log("error", this);
};
var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://core.lotus-app.ru/1/' + method, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.responseType = "json";
xhr.onload = success;
xhr.onerror = requestError;
xhr.timeout = timeout;
xhr.vars = vars;
xhr.send(paramToURL(params));
согласно логике в этом случае должно произойти onerror
Нет, не должно.
onerror срабатывает при возникновении ошибок сетевого уровня.
Т.е. если запрос вообще не вернулся или отклонен согласно кроссдоменным ограничениям.
Если http запрос вообще вернулся, даже и с кодом ошибки, то onerror не сработает.
Надо использовать onreadystatechange
и проверять там код завершения запроса.
Еще лучше сразу взять какую-то обертку для работы с сетью на уровне которой эта тонкость, а также множество тонкостей с которыми Вы еще не столкнулись, разрешены за вас. Будь то fetch-polyfill
, axios
или даже $.ajax
в случае если у вас jQuery все равное есть.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня сначало было такая же ошибка с методом post, но я исправил таким образом
У меня есть форма регистрации, после ее заполнения и отправки начинает грузится ajax, то есть он заполняет бд, регестрируется, но ajax это не показывает,...