2012-06-25 58 views
0

我在$(document).ready function中有一個ajax調用來獲取大量數據並在頁面上顯示。它返回大約160KB的數據,大約需要6秒。大多數情況下,它運行良好,但有時錯誤函數返回錯誤號403,200404,並且它不返回數據。我真的不知道有什麼問題。這裏是我的Ajax代碼:ajax響應中的大量數據和不一致的反應

jQuery(document).ready(function(){ 
     URL='{% url CompanyHub.views.getServices %}'; 
     jQuery.ajax({ 
      url:URL, 
      type:'POST', 
      context: this, 
      beforeSend:function(xmlHttpRequest){ 
       jQuery('#container').append('<img src="/static/loading.gif" id="loading" />'); 
      }, 
      complete:function(){ 
       jQuery('#loading').remove(); 
      }, 
      success:function(data){ 
       jQuery('#loading').remove(); 
       jQuery('#carousel').html(data); 
      }, 
      error:function(jqXHR, textStatus, errorThrown){ 
       alert(jqXHR.status); 
      } 
     }); 

    }); 

回答

0

我沒有表單元素,並在後期選擇發送csrf_token數據後,問題解決了:

data:{csrfmiddlewaretoken: '{{ csrf_token }}'} 
1

,你應該首先確保確保一切正常的服務器端,即404(未找到)和403(禁止)表明你張貼到不正確的URL。如果您使用django dev服務器,您可以在終端中看到響應代碼。如果您在那裏看到403和404,請調試您的服務器端代碼。

+0

哦,你就像右邊有一個CSRF驗證錯誤,但爲什麼!?我已經完成了每個通話都需要ajax通話,我從來沒有這樣的問題! –

+1

可能您現在正在使用更新版本的django。無論哪種情況,您都可以使用@csrf_exempt修飾器修飾您的ajax視圖,或者閱讀以下內容:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax – Hoff

+1

@Asma請檢查此鏈接:https ://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax – dbf