7

XMLHttpRequestオブジェクトを作成するための最良の方法は何ですか?

対応するすべてのブラウザで動作するはずです。

4

9 に答える 9

11

ライブラリのないソリューションの場合、Prototypeの使用をTry.theseかなり簡単にエミュレートできます。

function newAjax() {
    try { return new XMLHttpRequest();                    } catch(){}
    try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(){}
    try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(){}
    try { return new ActiveXObject('Msxml2.XMLHTTP');     } catch(){}
    try { return new ActiveXObject('Microsoft.XMLHTTP');  } catch(){}
    return false;
}
于 2009-01-06T02:10:18.803 に答える
9

ここに便利なリンクといくつかのコードがあります(すべてのベースをカバーする必要があります)

http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx

        var request = null;

        function InitAJAX()
        {
            var objxml = null;
            var ProgID = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Microsoft.XMLHTTP"];            

            try
            {
                objxml = new XMLHttpRequest();
            }
            catch(e)
            {                
                for (var i = 0; i < ProgID.length; i++)
                {
                    try
                    {
                        objxml = new ActiveXObject(ProgID[i]);
                    }
                    catch(e)
                    {                        
                        continue;
                    }
                }
            }

            return objxml;            
        }

        request = InitAJAX();
于 2009-01-06T02:03:42.000 に答える
8

jQuery (または同様の JavaScript ライブラリ)を使用します。Ajax 呼び出しの作成など、ブラウザー間の互換性の問題を処理します。

たとえばjQuery Ajax 呼び出しを使用すると、次のようになります。

$.ajax({
    url: 'document.xml',
    type: 'GET',
    dataType: 'xml',
    timeout: 1000,
    error: function(){
        alert('Error loading XML document');
    },
    success: function(xml){
        // do something with xml
    }
});
于 2009-01-06T02:03:09.897 に答える
3

独自のAjaxフレームワークを作成するよりも、ほぼすべてのJavaScriptAjaxライブラリを使用することをお勧めします。jQuery、PrototypeMooToolsDojo、または[ここに名前を挿入]フレームワークをチェックして、自分で作成することを主張する場合に、それらがどのように機能するかを確認することをお勧めします。

于 2009-01-06T02:04:54.010 に答える
1

これは私が使用しているものです、それは私にとってはうまくいきます:

    function request()
    {
        try
        {
            try
            {
                return new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch( e )
            {
                return new ActiveXObject("Msxml2.XMLHTTP")
            }
        }
        catch(e) 
        {
            return new XMLHttpRequest()
        }
    }
于 2009-01-06T02:17:38.680 に答える
1

XMLHttpRequest.js - 標準準拠のクロスブラウザー XMLHttpRequest オブジェクト実装を使用し、標準 (W3C)の方法でオブジェクトを操作します。

于 2009-01-06T10:25:05.250 に答える
0

私はCletusのjQueryの提案に賛成し、 jQuery Formプラグインもチェックします。これは非常に強力で使いやすく、フォームをAjax経由ですばやく機能するように変換できます。

于 2009-01-06T02:17:43.877 に答える
0

関数 CreateXmlHttpObj() {

try {
    XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
    try {
        XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (oc) {
        XmlHttpObj = null;
    }
}
// if unable to create using IE specific code then try creating for Mozilla (FireFox) 
if (!XmlHttpObj && typeof XMLHttpRequest != "undefined") {
    XmlHttpObj = new XMLHttpRequest();
}

}

于 2010-12-08T06:27:22.257 に答える