2010-07-11 39 views
0

我在Rails中使用jQuery getScript在儀表板頁面上加載AJAX搜索。但我注意到,除了正確地進行調用之外,它還將重新加載整個頁面(在後臺)。Rails AJAX請求也打電話給整個原始頁面

我不知道爲什麼會發生這種情況。

我檢查了我所有的before_filters,我的所有認證邏輯,我嘗試過使用不同的jQuery ajax函數(get,getJSON等),但沒有任何結果。它仍在重新加載頁面。此外,這兩條路線甚至在不同的控制器上!

有人知道可能會發生什麼嗎?

編輯:

已解決。

除了$ .get()函數之外,我還使用了$ .ajax({})函數來設置before函數。 $ .ajax中的某些內容一定是觸發了這個調用,所以我簡單地將新函數合併爲一個,並解決了我的問題。

順便說一句,儘管我在這個過程中發現了xhr.request?,它有助於檢測javascript調用,並防止某些操作響應javascript。

+0

顯示響應AJAX調用的控制器操作。你也確定你正在發送正確的接受頭文件嗎?如:'text/xml','text/javascript'或'application/json'? – 2010-07-11 06:12:38

+0

也同時,我使用一個簡單的response.xhr? before_filter在/ dash頁面(這是頁面被再次調用),所以至少它不會返回任何東西,但它仍然很奇怪和煩人 – 2010-07-11 06:30:10

+0

你應該將解析結果作爲答案發布,你可以自己接聽/接受問題,它可能會幫助未來有這個問題的人快一點:) – 2010-07-11 11:32:04

回答

0

這個jQuery JavaScript是觸發額外調用:

$.getScript(correct_url, function({ 
     $.ajax({beforeSend: function(){}...)} 
     callback code 
)} 

不能使用這樣的getScript加入速記功能裏面的AJAX快捷方式。內在的.ajax正在打電話。所以我簡單地將它們組合成一個.ajax函數

$.ajax({ 
    url: correct_url, 
    type: 'get', 
    dataType: 'script', 
    beforeSend: function(){ 

     }), 
     success: function(){ 
      <callback code> 
     } 
})