在这种情况下,xhr错误事件对象的详细信息是什么?

时间:2017-05-19 20:40:24

标签: javascript html5 xmlhttprequest addeventlistener

我正在测试一个简单的移动上传解决方案 - 这个问题不是关于实际的上传 - 在Chrome中它上传火灾中的图片错误事件引发 - 到目前为止一直很好 - 但现在我需要它为什么会触发。事件发送过来肯定在对象中有一些错误信息 - 但是我检查了progressevent的规格,我有点想知道它正在发送,但我仍然无法得到错误代码,描述或任何东西来帮我调试 - 任何指针好吗?

xhr.addEventListener("error", uploadFailed, false);
function uploadFailed(evt) {
alert("There was an error attempting to upload the file.");
alert(evt.error.toString()); // this is where the trouble starts
// the evt.error is undefined?  
}

thnx; - )

1 个答案:

答案 0 :(得分:1)

XMLHttpRequest对象具有与请求的HTTP状态对应的statusstatusText属性。这可能是一个很好的起点。另外,检查调试器中的JS控制台和网络选项卡可能会产生一些有用的信息(特别是在CORS问题时)。

使用status属性,您的错误处理程序可能看起来像这样:

xhr.addEventListener('error', function ()
{
    if (xhr.status >= 500)
    {
        alert("Something went wrong on the server!");
    }
    else if (xhr.status >= 400)
    {
        alert("Something went wrong with the request on our side!");
    }
    else
    {
        alert("No HTTP error indicated, yet the error event fired?!");
    }
});