Ajax+httpsで、IE7のみアクセス拒否エラーが出てしまいます。

以下のajaxスクリプトを「https://ドメイン名/bar.html」のページからIE7で実行させると「アクセスが拒否されました」エラーが出てしまいます。
「http://ドメイン名/bar.html」のページでは正常に実行されます。
またIE6では、「https://ドメイン名/bar.html」でも「http://ドメイン名/bar.html」でも両方とも問題なく実行されます。
なのでクロスドメイン制限にも引っかかっていないと思うんですが。。。

「https://ドメイン名/bar.html」のページからIE7で実行させてもアクセス拒否エラーが出ずに正常に実行されるには
どうしたらいいでしょうか。


var url = (("https:" == document.location.protocol) ? "https://ドメイン名/foo.php" : "http://ドメイン名/foo.php");

var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject){
XMLhttpObject.onreadystatechange = "コールバック関数名";
XMLhttpObject.open( "POST", url, true ); // <==== ここで「アクセスが拒否されました」エラーが出てしまう
}

回答の条件
  • 1人2回まで
  • 登録:2008/06/12 12:36:56
  • 終了:2008/06/12 14:36:06

回答(1件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/06/12 14:09:52

ポイント100pt

IE7 は XMLHttpRequest をサポートしているので、ご質問のソースにある

XMLhttpObject = new XMLHttpRequest();

が実行されるはずですが、XMLHttpRequest 自体に不具合があるのでしょうか。


試しに、

XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");

が実行されるように変更してから実行してみていただけますか。

id:orihomot

ありがとうございます。

教えていただいたように変更してみたところ、問題なく実行されました。

本当に助かりました☆

2008/06/12 14:35:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません