try-catch не работает с XMLHTTPRequest

Я пытаюсь использоватьtry-catch заявления для обработки ошибок отXMLHTTPRequestкак показано ниже:

<code>var xhr = new XMLHttpRequest();
xhr.open('POST', someurl, true);
try{
    xhr.sendMultipart(object);
}
catch(err){
    error_handle_function();
}
</code>

Когда произошла ошибка 401xhr.sendMultipart,error_handle_function не был назван. Есть идеи как это исправить?

Спасибо!

Ответы на вопрос(2)

Решение Вопроса

что вы не можете отловить ошибки сервера таким образом. вместо этого вы должны проверить код состояния:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function() {
    if (xhr.readyState === 4){   //if complete
        if(xhr.status === 200){  //check if "OK" (200)
            //success
        } else {
            error_handle_function(); //otherwise, some other code was returned
        }
    } 
}
xhr.open('POST', someurl, true);
xhr.sendMultipart(object);
 06 янв. 2017 г., 02:46
"ГОЛЛИ ЭТО РАБОТАЛО !!"
 07 авг. 2014 г., 22:44
В строке 3, откуда берется объект xmlhttp?
 10 июн. 2018 г., 17:10
Chrome по-прежнему выдает ошибку в консоли, а затем вызывает обработчик.
 12 июн. 2013 г., 23:30
Если вы установитеWeb Server Notifier в Chrome и попробуйте перейти на play.google.com, например, вы увидите обычную ошибку 404, которую я не могу предотвратить даже проверкой кода состояния ранее. Есть идеи, почему?

Это не было брошено. Он был возвращен асинхронно.

Это означает, что этот код завершает работу до получения ответа. Это то, чтоtrue в вашемopen вызов средств.

Вам необходимо зарегистрироватьonReadyStateChange обработчик и обработка ошибок там.

Ваш ответ на вопрос