Rails 3控制器用jQuery $.ajax()获取JSON时,为何出现304 Not Modified错误?

更新于
2026-10-09 21:56:10
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计198个文字,预计阅读时间需要1分钟。

Rails 3控制器用jQuery $.ajax()获取JSON时,为何出现304 Not Modified错误?

在 application.js 中,我拥有:$()

在application.js我有:

Rails 3控制器用jQuery $.ajax()获取JSON时,为何出现304 Not Modified错误?

$("#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

但由于某种原因,成功的功能只运行一次(我认为),其余时间Firebug在组合框更改触发ajax调用时报告304 Not Modified.

这是如何运作的?谢谢!

$.ajax的默认方法是GET:

type String
Default: ‘GET’

所以你的$.ajax调用正在执行GET请求,有人可能正在缓存它.尝试将cache:false添加到$.ajax选项中:

cache Boolean
Default: true, false for dataType ‘script’ and ‘jsonp’
If set to false, it will force requested pages not to be cached by the browser.

本文共计198个文字,预计阅读时间需要1分钟。

Rails 3控制器用jQuery $.ajax()获取JSON时,为何出现304 Not Modified错误?

在 application.js 中,我拥有:$()

在application.js我有:

Rails 3控制器用jQuery $.ajax()获取JSON时,为何出现304 Not Modified错误?

$("#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

但由于某种原因,成功的功能只运行一次(我认为),其余时间Firebug在组合框更改触发ajax调用时报告304 Not Modified.

这是如何运作的?谢谢!

$.ajax的默认方法是GET:

type String
Default: ‘GET’

所以你的$.ajax调用正在执行GET请求,有人可能正在缓存它.尝试将cache:false添加到$.ajax选项中:

cache Boolean
Default: true, false for dataType ‘script’ and ‘jsonp’
If set to false, it will force requested pages not to be cached by the browser.