2011-09-07 69 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