2011-09-07 60 views
0

我有一個Rails應用程序在那裏我有一些Ajax調用,它usally工作得很好,但是這一次我能得到的工作:軌道/ jQuery的AJAX沒有成功

我試圖從瀏覽器中運行的軌道類作品罰款,我試着在ajax調用之前用參數調用alert,工作正常..但沒有聯繫,最新錯誤?

的jQuery:

$.ajax({ 
    url: "things/ajax_text_read", 
    data: "book_id=" + book_id + "&page_number=" + page_number + "&type="+ type, 
    success: function(){$(this).text('data'); } 
}); 

的Rails:

def ajax_text_read 
@book_id = params['book_id'] 
@page_number = params['page_number'] 
@type = params['type'] 

@text = Thing.where(:parent_id => @page_number, :book => @book_id, :media_type => 'text') 

if(@type=='description') 
render :inline => "<%= @text[0].description %>" 
else 
render :inline => "<%= @text[0].title %>" 
end 

end 

回答

1

假設things/ajax_text_read是一個有效的URI:

$.ajax({ 
    url: "things/ajax_text_read", 
    data: "book_id=" + book_id + "&page_number=" + page_number + "&type="+ type, 
    success: $.proxy(function(data){ 
     $(this).text(data); 
    }, this) 
}); 
+0

我解決了它,顯然我不能在一個循環內使用$(this)在ajax請求中:) – jakobk

+0

@jakobk沒有注意到,你是「正確的」。但是,如果使用'$ .proxy'和'$ .ajax',則可以使用它。 – yoda

+0

我在每個循環中都使用了ajax請求,如果我在每個循環中都放入一個參數,並稍後使用該參數,它就可以正常工作。代理函數會確保我總是獲取最新的選擇器/鍵嗎? – jakobk

0
success: function(){$(this).text('data'); } 

並沒有太大的意義。在這種情況下$(this)將成爲成功函數,並且您試圖將其文本內容設置爲單詞'data'?

也許你的意思是這樣的:

success: function(data) { $('#something_in_your_page').text(data); } 

代替。

+0

真的,錯字..但如果我使用警報仍然沒有任何反應 – jakobk