XMLHttpRequest ontimeout未被触发

时间:2018-03-17 04:46:49

标签: javascript xmlhttprequest qml

我根据文档example编写了这个简单的javascript函数:

function request(url, callback) {
    var xhr = new XMLHttpRequest();

    xhr.ontimeout = function () {
        console.error("The request for " + url + " timed out."); // doesn't fire
    };

    xhr.onload = function() {
        console.log("loaded!"); // doesn't fire
    }

    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) callback(xhr.responseText);
    };

    xhr.open("GET", url, true);
    xhr.timeout = 200;
    xhr.send(null);
}

用法:

request('http://192.168.1.105/test', function (data)
{
        console.log(data);
});

此代码实际上在Qt4.8.5或Qt5.9.1中都运行到QML文件中。 两件奇怪的事情:

  1. 提供正确的网址,onreadystatechange会点火,但onload不会
  2. 提供错误的网址(我的意思是没有监听服务器)ontimeout事件永远不会触发
  3. 我的代码中有什么问题吗?

0 个答案:

没有答案