为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

杨__羊羊 2019-10-28 15:11:31
检索适用于所有浏览器的XmlHttpRequest对象的最简单,最安全的方法是什么?没有任何额外的库。您经常使用一个代码段吗?PS:我知道网上有很多例子,但这恰恰是我要问的原因:例子太多了,我只想简单实用的东西来工作。
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

根据要求,简单且行之有效:


function Xhr(){ /* returns cross-browser XMLHttpRequest, or null if unable */

    try {

        return new XMLHttpRequest();

    }catch(e){}

    try {

        return new ActiveXObject("Msxml3.XMLHTTP");

    }catch(e){}

    try {

        return new ActiveXObject("Msxml2.XMLHTTP.6.0");

    }catch(e){}

    try {

        return new ActiveXObject("Msxml2.XMLHTTP.3.0");

    }catch(e){}

    try {

        return new ActiveXObject("Msxml2.XMLHTTP");

    }catch(e){}

    try {

        return new ActiveXObject("Microsoft.XMLHTTP");

    }catch(e){}

    return null;

}

将其折叠成一行,我们得到:


function Xhr(){

    try{return new XMLHttpRequest();}catch(e){}try{return new ActiveXObject("Msxml3.XMLHTTP");}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0");}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){}try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}return null;

}


查看完整回答
反对 回复 2019-10-28
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

不确定您的问题是否100%-但是,如果您要返回跨浏览器XMLHTTP实例的函数-我们在本机ajax库中使用此方法已有多年了-在任何浏览器中都没有问题


function getXMLHTTP() {

    var alerted;

    var xmlhttp;

    /*@cc_on @*/

    /*@if (@_jscript_version >= 5)

    // JScript gives us Conditional compilation, we can cope with old IE versions.

    try {

        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")

    } catch (e) {

    try {

        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

    } catch (E) {

        alert("You must have Microsofts XML parsers available")

    }

    }

    @else

        alert("You must have JScript version 5 or above.")

        xmlhttp=false

        alerted=true

    @end @*/

    if (!xmlhttp && !alerted) {

        // Non ECMAScript Ed. 3 will error here (IE<5 ok), nothing I can

        // realistically do about it, blame the w3c or ECMA for not

        // having a working versioning capability in  <SCRIPT> or

        // ECMAScript.

        try {

            xmlhttp = new XMLHttpRequest();

        } catch (e) {

            alert("You need a browser which supports an XMLHttpRequest Object")

      }

    }

    return xmlhttp

}


查看完整回答
反对 回复 2019-10-28
  • 3 回答
  • 0 关注
  • 490 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信