2011-12-21 27 views
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()。有時會顯示結果,有時會刷新頁面,有時甚至沒有。

+0

您在哪個瀏覽器中看到此行爲? – jabclab 2011-12-21 12:34:49

+3

這是錯誤的事情:1)*請*正確地縮進你的代碼,它使* *更容易調試2)在'xmlhttp.onreadystatechange ='聲明末尾缺少一個';' - 聲明函數this way是一個賦值**語句**,因此在它的末尾需要一個分號3)在URL中使用它之前(例如'escapeURIComponent()'),您應該轉義'id'。除了這三件事之外,沒有理由不按預期工作 - 這取決於現有的「post」+ id'元素以及'post_review.php'實際做了什麼。 – DaveRandom 2011-12-21 12:50:41

+1

除了DaveRandom的答案,請檢查post_review.php是否總是返回一個響應(無論什麼格式:文本,JSON,XML等),因爲有多次,我得到500錯誤,由於從腳本,這就是導致AJAX失敗的原因。 – Ignas 2011-12-21 13:10:09

回答

0

您使用jQuery的ajax()方法爲Ajax很容易理解和正常工作

功能post_positive(ID){
$阿賈克斯({
                   類型:'get',
                      URL: 'post_review.php',
                     數據:{ 'ID':ID, '類型': '正'},
                       成功:功能(結果){
                                          $( 「#郵報」 + ID)的.text(結果);

                                           }

                     });
}

相關問題