jQuery $ .ajax()调用从Rails 3控制器获取JSON导致304 Not Modified?
在application.js我有:
$("#combo_box").live('change', (function() { $.ajax( { url: '/my_controller/get_data', data: {id: some_id}, success: function(data){ do_stuff_with_data(data) } } ) } ) )
在my_controller代码中我有:
def get_data id = params[:id] @data = MyModel.DoSomeStuff(id) respond_to do |format| format.js { render :json => @data} end end
但由于某种原因, success
的function只运行一次(我认为),其余时间Firebug在combobox更改触发ajax调用时报告304 Not Modified
。
这是如何运作的? 谢谢!
$.ajax
的默认方法是GET:
类型字符串
默认值:’GET’
所以你的$.ajax
调用正在执行GET请求,有人可能正在缓存它。 尝试将cache: false
添加到$.ajax
选项中:
缓存布尔值
默认值:true,false表示dataType’script’和’jsonp’
如果设置为false
,它将强制浏览器不缓存请求的页面。