IEの場合、アクセスしたURLのドメイン名と、AJAXでアクセスするアドレスのドメイン名が異なる場合クラスサイトスクリプト警告ダイアログが表示されます。たとえば、ドメイン名を指定してWebページにアクセスし、たとえ同じサーバーであってもURL を IPアドレスで指定して XmlHttpRequest を使用すると 下記のように クロスドメイン警告のダイアログがデフォルトでは表示されます。

 

 個人的にはそんなことしなくても回避する方法はあると思うのですが、かかわっていたプロジェクトではAJAX呼び出し時に URLにIPアドレスを指定していました。当然、Webページのホスト名に DNS 名を使用すると、標準設定ではクロスドメイン警告ダイアログが表示されます。 

セキュリティ上は良いことではありませんが、クロスドメインアクセスの警告ダイアログを表示しないように設定できます。IEのインターネットオプションダイアログを表示します。セキュリティタブで、設定をしたいゾーンを選択してレベルのカスタマイズボタンをクリックします。セキュリティ設定画面で ドメイン間でのデータソースのアクセス という項目があるので、設定を変更します。下図はイントラネットゾーンのデフォルトの設定で"ダイアログを表示する"になっています。

ダイアログを表示せずクロスドメインアクセスを許可する場合は 有効にする を選択してOK ボタンをクリックします。ダイアログを表示せずに不許可にする場合は 無効化にする を選択します。

以上で設定は完了です。

クロスドメインアクセスに関するおまけ情報です。

IEではアドレスのドメイン名が一致していればポート番号が異なっていてもクロスドメイン警告は表示されません。ただし、Ajax呼び出しに、jQuery 1.5以上を使用している場合は、jQueryに対してクロスドメインを許可する設定を行う必要があります。

jQuery.support.cors = true;