2012-06-30 32 views
0

我使用jQuery做一些Ajax請求:Ajax的jQuery的報警的404

$('#my-btn').click(function() {ldelim} 
    var comment = $('#textarea').val(); 
    var m = {$id}; 
    var data = {ldelim} 
      comment: $('#textarea').val(), 
      m: {$id} 
     {rdelim}; 

     $.post('index.php?page=page',data,function(callback_data){ldelim} 

     var content = $('div.my-btn').html(); 
     $('div .comments').append(content); 
       ... 
     alert(callback_data); 
{rdelim}); 
{rdelim}); 

(即{rdelim}或{$ id}二的原因是,我使用的模板引擎Smarty的。)

我的php代碼的處理工作得很好:bdd已正確實現,但回調警報發送'404',阻止我從我的php代碼中回顯數據編號。 (當我在我的php代碼中調用echo($ data)時,我得到$ data + 404的警報)。

有沒有人有想法?

最佳, Newben

+0

我有相同數量的響應。一種擺脫404的方法是製作一些callback_data =(callback_data-404)/ 1000;但它真的不能接受 – Newben

回答

1

爲jQuery的.post()僅供成功(HTTP狀態代碼2XX)響應的回調。要對404的回調需要使用.ajax()

$.ajax({ 
    type: 'POST', 
    url: 'index.php?page=page', 
    data: data, 
    success: function(callback_data) { 
     // ... 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     // ... 
    } 
}); 

請參閱http://api.jquery.com/jQuery.post/http://api.jquery.com/jQuery.ajax/

+0

謝謝,我會看看這個! – Newben

+0

重新閱讀你的問題後,我意識到我根本不理解這個問題,所以這可能無法幫助你。你可以展示PHP代碼,還是多解釋一下? –

+0

顯然你的PHP代碼是404回聲。「bug」可能在你的PHP中,而不是在JavaScript中。我的答案假定404是一個HTTP狀態代碼,它將使用PHP'header(「HTTP/1.0 404 Not Found」)發送;' –