小编典典

可以将xhr.onreadystatechange替换为AJAX调用的xhr.onload吗?

ajax

我只需要支持主要的现代浏览器(IE10 +,FF,Chrome,Safari)

我可以简化我的代码库吗?

从:

xhr.onreadystatechange = function () {
    if (this.readyState === 4) {
        if (this.status === 200) {
            o.callback(xhr.responseText);
        } else {
            return false;
        }
    } else {
        return false;
    }
};

至:

xhr.onload = function (test) {
    o.callback(xhr.responseText);
};

我认为MDN文档在这方面并不明确。

澄清:

我选择不使用框架。


阅读 487

收藏
2020-07-26

共1个答案

小编典典

也许你看看这个,一看W3C:XMLHttpRequest的是,如果你的浏览器支持xhr.onload相同。需要XMLHttpRequest 2)

您还可以编写一个包装函数来模拟xhr.onload(如果不存在)。(我认为您需要覆盖XMLHttpRequest.prototype.onload =function(args){//calling onreadystatechanges somehow})。如果您仅支持使用xhr.onload的现代浏览器-最好的解决方案是使用 框架

2020-07-26