0
目前我得到這個代碼:Ajax調用有時可能有效,有時會工作並刷新,有時會刷新並失敗...?
function post_positive(id) {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("post"+id).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","post_review.php?id="+id+"&type=positive",true);
xmlhttp.send();
return false;
}
對於我的Ajax調用我只是功能post_positive()
。有時會顯示結果,有時會刷新頁面,有時甚至沒有。
您在哪個瀏覽器中看到此行爲? – jabclab 2011-12-21 12:34:49
這是錯誤的事情:1)*請*正確地縮進你的代碼,它使* *更容易調試2)在'xmlhttp.onreadystatechange ='聲明末尾缺少一個';' - 聲明函數this way是一個賦值**語句**,因此在它的末尾需要一個分號3)在URL中使用它之前(例如'escapeURIComponent()'),您應該轉義'id'。除了這三件事之外,沒有理由不按預期工作 - 這取決於現有的「post」+ id'元素以及'post_review.php'實際做了什麼。 – DaveRandom 2011-12-21 12:50:41
除了DaveRandom的答案,請檢查post_review.php是否總是返回一個響應(無論什麼格式:文本,JSON,XML等),因爲有多次,我得到500錯誤,由於從腳本,這就是導致AJAX失敗的原因。 – Ignas 2011-12-21 13:10:09