私はFireFox、chrome、IE8でうまく動作しますが、IE6とIE7では動作しません。私はIE6と7以外の他のブラウザでコードを実行するとIE6とIE7でAJAXを正しく実行する際の問題
function GetXmlHttpObject() {
//var xmlHttp = null;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function login()
{
alert("Entered Login()");
var url="http://server.com/ALUauth.php";
xmlhttp.onreadystatechange=statechangedLogin;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechangedLogin()
{
if(xmlhttp.readyState==4)
{
alert("Entered State Changed Login");
if (xmlhttp.responseText=="Please <a href=http://server.com/ALUauth.php?login>login</a>")
{
document.getElementById("ALUauth").innerHTML=xmlhttp.responseText;
}
else
{
GetEmailId();
}
}
}
function GetEmailId()
{
alert("Entered GetEmailId()");
var url="http://server.com/GetPostEmail.php";
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=statechangedLogin2;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechangedLogin2()
{
if(xmlhttp.readyState==4)
{
alert("Enter State Changed Login 2");
if(xmlhttp.responseText=="Login again")
{
window.location="http://server.com/profile.html";
}
}
}
が出力から始まるすべてのアラートボックスを私に示しています - ログイン() に参入 - 入力した状態が変更ログイン - GetEmailIdを入力しました() - 国家はログイン2
を変更し、http://server.com/profile.html
に、ウィンドウの位置変更入力しますが、私はIE 6または7に同じことを実行すると、コードがstatechangedLogin2()
に行き、これだけ警告しません。私はここに来るです:
- 入力したログインを()
- 入力した国はGetEmailIdを入力したログイン
- 変更()
私はこの問題が発生している理由を把握することができません。なぜそれが起こっているのですか、私は何を変えなければなりませんか?このプロジェクトはIE8を含む他のブラウザでも問題なく動作しています。
私のこの問題を理解するのに役立つ人がいますか?
ある種のAJAXライブラリを使用していないために何らかの理由があります、jQueryのように?また、コードセクションをコード(101010ボタン)としてマークしてください。 –