2009-10-21 19 views
5

Microsoftは、Internet Explorer 7でネイティブなXMLHttpRequestオブジェクトを追加しましたが、インターネットオプションダイアログで無効にすることができます。では、XMLHttpRequest()とActiveXObject( "Microsoft.XMLHTTP")の違いは何ですか?XMLHttpRequest()とActiveXObject( "Microsoft.XMLHTTP") - 何がポイントですか?

無効にすることができれば、ブラウザの互換性チェックを永遠に維持する必要がありますか? XMLHttpRequest()はActiveXObject( "Microsoft.XMLHTTP")または何よりも早く初期化されますか?なぜMicrosoftはそれを追加してオプションにするのだろうか?

+0

は、Firefoxの特定のページとの互換性がありますか? – Xinus

+0

@Rubens Farias、これが意図されています。私はXMLHttpRequestをチェックするか、ActiveXObject()を直接実行する必要があるかどうかを知りたければIE7 +(他のブラウザは使用できません)のみで作業します –

+0

IE7 +で作業する場合は、XmlHttpRequestを直接操作して、 try/catchで直接的または間接的に無効になっていることを意味します。 ActiveXのアプローチを選択した場合、内部実装は全く異なります(ロードされたDOMとの互換性がなく、変換が必要)。また、ActiveXは非常に頻繁に無効になります。 – Abel

答えて

5

ActiveXObjectを無効にすることもできます。他のブラウザでもこの設定や他の設定を無効にすることができます。これはブラウザの互換性に関するものではなく、ユーザーの好みに関するものです。ユーザーはクロスドメイン要求の許可/禁止、スクリプトの許可/禁止、Flashの許可などが可能です。

ユーザーが無効にしたときにページがまだ滑らかになっているかどうかをチェックする必要があります特定のブラウザの機能が必要です。

良いニュースは、デフォルトで有効になっており、ほとんどのユーザーはそれを利用します。

更新:デフォルトでは、スクリプトや外部要求によって(すなわちdocument()xsl:include XSLTまたはXML外部エンティティと)XmlHttpRequest -retrievedオブジェクトによってサポートされていないため、明示的に有効にする必要があります。これは、XHR - 読み込まれたドキュメントからの外部リクエストが許可されている(またはSafariやChromeのように存在しない)非IEブラウザとは異なります。

+1

'良いニュースは:デフォルトで有効になっており、ほとんどのユーザーはそれを持っています。 ' - その理由は私が質問したところで、私のユーザーの1人がスイッチをオンにしていないことがわかりました。失敗します。それまでそれが無効になっていたかもしれないことに気が付きませんでした。 –

2

これは推測ですが、JavaScriptを無効にするのと同じ理由で無効にすることができます。一部の人々は、リスク(プライバシー、セキュリティ、その他)が利益を上回り、したがってそれを無効にしたいと考えています。

+0

ActiveXObjectと共に無効にされている場合、私はこれを理解することができます。しかし、実際にはXMLHttpRequestを無効にしてもActiveXObject( "Microsoft.XMLHttpRequest")を使用することができます。 –

関連する問題