try-catch 不适用于 XMLHTTPRequest

2022-01-15 00:00:00 xmlhttprequest javascript try-catch

我正在尝试使用 try-catch 语句来处理来自 XMLHTTPRequest 的错误,如下所示:

I am trying to use the try-catch statements to handle the errors from XMLHTTPRequest, like below:

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

xhr.sendMultipart 抛出 401 错误时,error_handle_function 未被调用.知道如何解决这个问题吗?

When there was a 401 error thrown by xhr.sendMultipart, the error_handle_function was not called. Any idea how to fix this?

谢谢!

推荐答案

我认为您无法以这种方式捕获服务器错误.你应该检查状态码:

I think you can't catch server errors that way. you should be checking the status code instead:

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);

相关文章