加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – jQuery $.ajax()调用从Rails 3控制器获取JSON

发布时间:2020-12-17 01:27:51 所属栏目:百科 来源:网络整理
导读:在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 = par
在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

但由于某种原因,成功的功能只运行一次(我认为),其余时间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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读