加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 最简单的方法来检索跨浏览器XmlHttpRequest

发布时间:2020-12-16 03:17:52 所属栏目:百科 来源:网络整理
导读:什么是最简单和最安全的方法来检索适用于所有浏览器的XmlHttpRequest对象?没有任何额外的库。有没有你经常使用的代码段? P.S。我知道网上有很多例子,但这正是我要求的原因:有太多不同的例子,我只想要一些简单的,可靠的工作。 jQuery和其他库不是一个选
什么是最简单和最安全的方法来检索适用于所有浏览器的XmlHttpRequest对象?没有任何额外的库。有没有你经常使用的代码段?

P.S。我知道网上有很多例子,但这正是我要求的原因:有太多不同的例子,我只想要一些简单的,可靠的工作。

jQuery和其他库不是一个选项。
Why does jquery leak memory so badly?

我有时使用这个片段从 quirksmode.org

但只有有一个真正好的理由不使用一个合适的库;)

function sendRequest(url,callback,postData) {
    var req = createXMLHTTPObject();
    if (!req) return;
    var method = (postData) ? "POST" : "GET";
    req.open(method,url,true);
    req.setRequestHeader('User-Agent','XMLHTTP/1.0');
    if (postData)
        req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    req.onreadystatechange = function () {
        if (req.readyState != 4) return;
        if (req.status != 200 && req.status != 304) {
//          alert('HTTP error ' + req.status);
            return;
        }
        callback(req);
    }
    if (req.readyState == 4) return;
    req.send(postData);
}

var XMLHttpFactories = [
    function () {return new XMLHttpRequest()},function () {return new ActiveXObject("Msxml2.XMLHTTP")},function () {return new ActiveXObject("Msxml3.XMLHTTP")},function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
    var xmlhttp = false;
    for (var i=0;i<XMLHttpFactories.length;i++) {
        try {
            xmlhttp = XMLHttpFactories[i]();
        }
        catch (e) {
            continue;
        }
        break;
    }
    return xmlhttp;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读