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 ,它将强制浏览器不缓存请求的页面。