2011-02-24 72 views
0

爲什麼跟jquery代碼在使用django時無法正常工作,而如果像靜態頁面那樣加載呢?jquery ajax在Django頁面加載數據時出現問題

有可能django的csrf保護涉及某處,但我找不到如何使其工作。

編輯,精簡代碼:


$(document).ready(function(){ 
$('.content').load('something.txt'); 
    $.ajax({ 
    method: "get",url: "http://something.com/pm/js/something.txt", 
    success: function(html) 
      { 
      $(".content").html(html); 
      } 
    }); 
}); 

這樣做的目的應該是: 當此Django的頁面加載,腳本應該調用另一個Django的視圖(S),並從中加載數據。 (此時,使其更容易「something.txt」是靜態文件)

...螢火不

+0

這裏是我將如何調試:1.獲取點擊處理程序。 2.在$ .ajax中添加錯誤函數參數。 3.檢查螢火蟲或查爾斯的電話。你不會說哪個Ajax調用有效,哪些不調用。此外,您不會說是否有任何可能影響執行的動態數據被加載。 – awongh 2011-02-24 02:45:49

+0

爲了讓它更簡單,我將它剝離了下來,但結果是一樣的:它在nginx提供的靜態頁面中沒有任何問題,當我使用django執行相同的操作時,它忽略了javascript。我懷疑有涉及django的跨站點請求僞造保護,但我還沒有找到任何有關此csrf/django/ajax的信息 – nanook 2011-03-02 07:20:59

+0

CSRF與此無關,因爲它是「獲取」請求而不是「發佈」請求。 – 2014-01-24 19:43:31

回答

0

我要帶胡亂猜測顯示任何異常:也許當你加載使用Django的頁面沒有正確的靜態文件服務設置,所以jQuery永遠不會被加載,因此沒有Javascript被執行。

要檢查並查看jQuery是否獲取加載打開該頁面上的螢火蟲,並看看jQuery變量是否undefined

如果這是問題,現在只需從CDN加載jQuery。

<script src="http://code.jquery.com/jquery-1.5.1.js"></script>