我正在构建一个chrome扩展,我的Ajax请求的响应是“准备好”(状态200和就绪状态4)4次,而不是仅仅一次,并且它不会经历1-3阶段。而是4次4次。这对我不好,因为我向用户发出4次警报而不是一次。
我的代码很简单javascript
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
console.log(xmlhttp.readyState + xmlhttp.status);
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.response) checkForAlertTab(xmlhttp.response);
else console.log('false');
}
}
xmlhttp.open("POST", "http://myserver.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(sendToServer);
我在服务器中的代码只是一个从数据库中提取一些数据并将其回送出来的PHP,响应很好而且花花公子(信息就在那里)但是为什么不是ajax readystate正常通过他的阶段 - 这可能是什么原因?
答案 0 :(得分:-1)
为什么不在Chrome扩展程序中使用jQuery并使用$ .ajax!它轻巧,让您轻松完成任务。
http://api.jquery.com/jQuery.ajax/
无论如何,上述问题的可能原因 - 因为你的xmlhttp对象是全局的,每次调用ajax post而不是替换它时,chrome可能会分配一个新的onreadystatechange。这取决于呼叫的数量。