2013-08-29 29 views
1

我想要在我的主頁加載(home.html.erb)後執行此操作: ,調用ajax更新同一頁上的標記的值。 以下是我在我的home.html.erb在軌道上的紅寶石自動ajax調用不起作用

<script> 
    $(document).ready(function() { 
    $.ajax({ 
     type: 'GET', 
     url: '<%= url_for(action: "home") %>' 
    }); 
    }); 
</script> 

和我home.js.erb

var id = 5; 
$('#jquerylogo').html(id); 

和我的控制器

def home 
    respond_to do |format| 
    format.html # home.html.erb 
    format.js 
    end 
end 

但AJAX是不調用該代碼不起作用。爲什麼? 謝謝。

+0

對不起,但它的不清楚你在做什麼?你能舉個例子嗎?也許在jsfiddle上的東西? – CuriousMind

+0

檢查控制檯是否有任何javascript錯誤。 –

+0

我只是想用javascript來改變$('#jquerylogo')的值,但我想用頁面加載時發生的ajax調用來做到這一點...(這應該很簡單,但它不工作,如果你想知道爲什麼我這樣做,這是因爲在下一步我希望代碼每10秒執行一次ajax調用) – user2725109

回答

4

有時ujs問題是欺騙。

我會開始在ajax調用中添加一個dataType來強制控制器尊重它的類型。

$(document).ready(function() { 
    $.ajax({ 
    type: 'GET', 
    dataType: 'script', 
    url: '<%= url_for(action: "home") %>' 
    }); 
}); 

事情找是:

  • 檢查JavaScript控制檯,看看有什麼(如果有的話)的錯誤你有
  • 檢查您的日誌,看看是否作出請求/接收/渲染as html
+0

YESSSSSSSSSSSSSSS,它工作。非常感謝,你做了我的一天(我浪費了幾個小時試圖解決這個問題)。我不熟悉JavaScript控制檯。你能指點我一個很好的教程嗎? – user2725109

+0

https://developers.google.com/chrome-developer-tools/docs/console - Chrome https://developer.mozilla.org/en-US/docs/Debugging_JavaScript - Firefox https://developer.apple.com /library/safari/documentation/appleapplications/Conceptual/Safari_Developer_Guide/DebuggingYourWebsite/DebuggingYourWebsite.html - Safari - 但對於使用這個網站有很好的提示:http://www.developerfusion.com/article/139949/debugging-javascript-with -firebug / – trh