在XMLHttpRequest错误回调中获取错误文本

时间:2019-07-02 21:46:01

标签: javascript xmlhttprequest

给出以下代码片段:

function getPage () {
        var xhttp = new XMLHttpRequest();
        xhttp.addEventListener("error", getFailed);
        xhttp.open("GET", "http://nonexistentserver.com", true);
        xhttp.send();
        }

function getFailed(msg) {
    // I get an ProgressEvent object which doesn't have any text properties?
        }

运行时,确实会调用getFailed()回调,但是我找不到有关如何确定错误原因的任何信息。当我搜索信息时,我所能找到的只是HTML错误(例如404)和有关导致错误的错误报告。如何在错误回调中获取有关失败原因的信息?

2 个答案:

答案 0 :(得分:0)

在您的情况下,似乎无法获取错误信息。有一些显示请求状态的属性:XMLHttpRequest.status,XMLHttpRequest.statusText和XMLHttpRequest.responseText。但是在这种情况下,它们都不起作用(仅XMLHttpRequest.status显示为“ 0”)。当发生错误时,将调用XMLHttpRequest的错误事件。它不会发送有关该错误的任何信息。希望这些对您有所帮助:XMLHttpRequestXMLHttpRequest Properties

答案 1 :(得分:0)

您可以尝试使用onprogress事件并处理状态代码,如下所示:

var xhr = new XMLHttpRequest;
xhr.onprogress = function () {
  console.log(xhr.status); //404 will be printed on console
};

xhr.open('GET', '/noexists');
xhr.send();