У меня есть небольшая проблема с пониманием обработчиков XMLHttpRequest. В спецификации указано об onerror обработчике:
error[Отправлено...] Когда запрос не выполнен.
load[Отправлено...] Когда запрос успешно завершен.
Проблема в том, что это значит, что "запрос не сработал". Это может быть
- запрос не может быть выдан вообще (например, отказ в подключении и такие ошибки) или
- выше, плюс сервер вернул код ошибки (например, 404)
Кроме того, я хотел бы знать, означает ли это, что onerror и onload не должны запускаться одновременно.
Эта ссылка указывает, что обработчик onerror должен выполняться в зависимости от кода status и onload в зависимости от readyState. Это означает, что они не являются взаимоисключающими, однако я не думаю, что это авторитетная информация.
Я прошу, потому что, используя последний снимок Opera, я обнаружил, что onload запускается даже по 404 статусу. Я знаю, что тестирование status - это уверенная ставка, но я хотел бы знать, нужно ли мне что-то делать для каждой спецификации или просто обходной путь для ошибки в Opera.