次の Ajax 関数形式を使用しています。
var xmlhttp;
function addAddress(str)
{
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
//specific selection text
document.getElementById('info').innerHTML = xmlhttp.responseText;
}
}
var addAddress = "add";
xmlhttp.open("POST", "sys.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var queryString = "&addAddress=" + addAddress;
xmlhttp.send(queryString);
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
if (windows.ActiveXObject)
{
return new ActiveXObject("Micorsoft.XMLHTTP");
}
return null;
}
これまでのところ、上記のような私の Ajax 関数はすべて正常に動作しています。ただし、現在、この機能は時々しか機能しません。ここで、関数を実行するために onclick イベントを数回クリックする必要がある場合があります。そうしないと、関数がハングし、約 4 分後に実行されます。
関数の一部をテストしたところ、問題は次の場所にあることがわかりました。
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
alert(xmlhttp.status);
//specific selection text
document.getElementById('info').innerHTML = xmlhttp.responseText;
}
関数が機能すると、アラート (xmlhttp.status) を実行して 200 を取得できます。ただし、機能していない場合、アラート ボックスはトリガーされません。実際には何も起こらず、エラーさえもありません。
これはサーバーの問題でしょうか?私のウェブサイトがハッキングされたのではないかと考えていますが、Ajax 機能が適切に実行されていないことを受け入れる問題は見つかりません。
最後に、ローカルホストではこの問題は発生しません。ライブ Web サイトでのみ発生しています。
どんな助けでも大歓迎です。
ありがとう