繁体   English   中英

try-catch不适用于XMLHTTPRequest

[英]try-catch doesn't work with XMLHTTPRequest

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

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

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

谢谢!

我认为你不能以这种方式捕获服务器错误。 你应该检查状态代码:

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

当xhr.sendMultipart抛出401错误时

它没有被抛出。 它以异步方式返回。

这意味着此代码在响应到达之前完成运行。 这就是你的open电话中的true含义。

您需要注册onReadyStateChange处理程序并在那里处理错误响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM