単純なAJAXリクエストを作成し、次のコードを使用してJSコンソールにレスポンスを記録しています。それは完全に正常に機能しますが、私を悩ませているのは、サーバーから3つの応答が返されることです(添付の画像を参照)。
これがなぜであるかについて誰かが何か光を当てることができますか?
var xmlHttp = newXMLHttpObj();
function newXMLHttpObj(){
var xml;
if(window.XMLHttpRequest){
xml = new XMLHttpRequest();
} else{
xml = new ActiveXObject("Microsoft.XMLHTTP");
}
return xml;
}
function ajaxHandler(){
if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
//handle response
var response = xmlHttp.responseXML.documentElement;
console.log(response);
var name = response.getElementsByTagName("name")[0].firstChild.data;
var age = response.getElementsByTagName("age")[0].firstChild.data;
ajaxContent.innerHTML = "Name: " + name + "<br />Age: " + age;
} else{
setTimeout(ajaxHandler, 1000);
}
}
function ajaxProcess(){
var ajaxContent = document.getElementById("ajaxContent");
ajaxContent.innerHTML = "loading";
//check server is ready to comunicate
if (xmlHttp.readyState == 0 || xmlHttp.readyState == 4){
xmlHttp.open("POST", "/js/test.php", true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = ajaxHandler;
xmlHttp.send("name=the chuff&age=26");
} else{
setTimeout(ajaxProcess, 1000); //restart ajaxProcess until ready to comunicate
}
}