问题
It should be noted that I am not very proficient at using Firebug, but I haven't found any errors that explain the following issue.
I have a feed.js.erb
file containing the following code:
var $foos = $('<%= escape_javascript(render(@foos)) %>');
$('#container').append($foos);
$('#pagination_button a').attr('href', '<%= feed_path + '?page=' + @page %>');
When this ajax call is made the second time, it appears to fail silently. I see the appropriate response in the Firebug console, but $foos
is not altered and subsequently the #container
is never appended.
My html page only includes a loading indicator, which it successfully replaces on the first call. The second call is triggered from other javascript (Infinite Scroll).
If it matters, I have noticed that the first call is made with an automatically generated timestamp parameter. After that I am replacing the target url as you can see on my #pagination_button a
.
How can I debug this in the browser?
Update: I used ERB to make $foos
a dynamic variable ($foos1...$foos2) and noticed that this is also not working. So even though the new @foos
are visible in the console's response, the first line of my javascript is not being evaluated.
回答1:
As it turns out, Rails is not processing my second request as JS. More importantly, if the JS raises an exception, it will be converted to plain-text as explained here. Steve also shows how to debug ajax code, effectively answering both of my questions.
来源:https://stackoverflow.com/questions/10576077/how-to-troubleshoot-silently-failing-js-in-rails