2

私がチェックアウトしたすべてのAJAXライブラリでは、XMLHttpRequestには、テストまたはtry/catchステートメントを含む長い宣言が含まれています。

SOAP GETリクエストを介してXMLを取得する必要があり、IE7 +、Firefox、およびChromeで次の宣言を正常にテストしました。

var xhr=new XMLHttpRequest()||new ActiveXObject("Microsoft.XMLHTTP");

ここで何が欠けていますか?宣言が破られるエッジケースを見落としましたか?

編集

したがって、宣言の2番目の部分は実行されません。IE7 + / Firefox / Chromeの場合、必要なのは次のことです。

var xhr=new XMLHttpRequest();
4

2 に答える 2

3

7より前のバージョンのInternetExplorerの場合を見逃すでしょう。

new ActiveXObject("MSXML2.XMLHTTP");

createRequest()たとえば、ブラウザによっては適切なオブジェクトを変更して返す必要がない関数があり、エラーを処理するためにtry/catchを含めるのがより良い方法だと思います。

于 2011-12-12T21:07:23.960 に答える
1

newが優先されるため、実行して戻り値new XMLHttpRequest()を確認します。ただし、ケースが定義されていない場合、この実行はすでにエラーをスローします。むしろ、適用する前にが定義されているかどうかを確認する必要があります。例:XMLHttpRequestXMLHttpRequestnew

var xhr = typeof XMLHttpRequest === "undefined"
            ? new ActiveXObject("Microsoft.XMLHTTP")
            : new XMLHttpRequest; // you can leave out the parens with no arguments
于 2011-12-12T21:07:04.967 に答える