Tag: ajax

kaminari ajax分页不更新分页

我正在使用kaminari gem在rails3中实现分页。 我一直在关注这个代码来自github https://github.com/amatsuda/kaminari_example/commits/ajax 不幸的是,以下代码 jQuery(’#pagginator’)。html(’ true).to_s)%>’); 似乎没有工作。 我的javascript用于做什么用户选择页面是什么 jQuery的( ‘一个’, ‘nav.pagination’)。点击(函数(){ //从href获取页面值 var page = jQuery(this).attr(’href’)。replace(’/ home / index?page =’,”); jQuery.getJSON(’?page =’+ page,function(data){ for(var r in data){ results.push(数据[R]); }); showResults(结果,(页面-1)* 10); jQuery(’#pagginator’)。html(’ true).to_s)%>’); }); showResults函数通过JSON运行并创建一堆html元素。 一切都很好,除了在重新加载结果时分页没有更新以显示当前页面。 我在firebug中没有任何错误,我使用Rails 3和ruby 192。

AJAX请求从每个页面命中服务器,我找不到原始AJAX调用的来源

在我的成千上万行javascript中,正在进行ajax调用。 我不能为我的生活找出它的来源。 它似乎发生在页面加载后。 我可以在firebug中看到正在进行ajax调用。 ajax调用始终请求当前页面。 因此,例如,一旦users#new users#new.js加载,它就会向users#new.js提出要求,并且对每个其他控制器和操作也users#new.js 。 有没有办法可以确定从中调用代码的位置?

Rails InvalidCrossOriginRequest

我在我的Rails应用程序页面上有一个remote: true链接,它调用同一页面的.js版本,然后运行脚本来更新页面内容。 它工作正常,但从昨天起我现在得到Security warning: an embedded tag on another site requested protected JavaScript. If you know what you’re doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding. Security warning: an embedded tag on another site requested protected JavaScript. If you know what you’re doing, go ahead and disable forgery […]

Hartl第11章Ajax未定义局部变量或方法`cookies’

我正在进行Hartl教程,目前正在使用AJAX进行第11.2.5章工作跟踪按钮。 对于关系控制器,我的测试失败了,我无法弄清楚原因。 预期的行为发生在浏览器中。 如果我删除cookie方法,它会导致许多其他测试失败。 我错过了什么导致了这个问题? 这是我对RelationshipController的测试 require ‘spec_helper’ describe RelationshipsController do let(:user) { FactoryGirl.create(:user) } let(:other_user) { FactoryGirl.create(:user) } before { sign_in user, no_capybara: true } describe “creating a relationship with Ajax” do it “should increment the Relationship count” do expect do xhr :post, :create, relationship: { followed_id: other_user.id } end.to change(Relationship, :count).by(1) end it […]

Rails 3:未定义的方法`remote_form_for’

我在HAML中有一个相当简单的Rails远程表单,部分在共享/用户之下: – remote_form_for :user, :url => { :controller => “users”, :action => “create” } do |f| .field = f.label :name, t(‘name’) = f.text_field :name .field = f.label :email, t(’email’) = f.text_field :email .actions = f.submit 无论我多么愚弄它,这都行不通。 我总是得到以下错误: undefined method `remote_form_for’ for #<#:0x1036dfd90> 我做了些蠢事吗? 它与form_for完美配合。

Rails跨域ajax获取请求(CORS)

我正在尝试在我的rails应用程序中实现google places api。 这是我在尝试使用从ajax请求获取数据的函数时遇到的错误: XMLHttpRequest cannot load . Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:3000’ is therefore not allowed access. 我正在使用rack-cors gem,我已将此片段添加到我的config / application.rb文件中: config.middleware.insert_before 0, “Rack::Cors” do allow do origins ‘*’ resource ‘*’, :headers => :any, :methods => [:get, :post, :options] […]

在rails中调用ajax中的update方法后,在索引视图中更新div?

我有一个包含post列表的页面,我使用ajax使用will_paginate进行分页,每个post附近都有一个”Like” button 。 如果用户点击“赞”按钮,那么我需要update表格中的喜欢计数,我想将“喜欢”按钮更改为”Dislike” 。 比方说,例如,如果我在post的第二页,我点击“赞”按钮,我需要调用我的更新方法,我怎么能回到同一页面并使用ajax更改按钮。 如果我的更新逻辑在同一索引方法中,我可能会这样做但如果我的逻辑位于update方法中,我怎么能替换index.html.erb的内容。 请帮我。 谢谢。

将HTML返回给AJAX Rails调用

在阅读David Heinemeier Hansson关于服务器生成的javascript的博客文章之后 ,我决定回顾一下我在Rails应用程序中进行AJAX调用的方法。 David建议创建一个.js.erb模板,它只是嵌入了服务器上生成的ruby代码的javascript,而不是在客户端javascript中进行任何DOM操作。 另一种方法当然是简单地在客户端执行所有操作,并且(例如)从服务器返回表示更新对象的JSON对象,并使用javascript来执行所有DOM操作。 我不喜欢第一种方法有两个原因: 1)我在我的应用程序中使用HAML和Coffeescript,并且觉得通过使用vanilla javascript和ERB会不断地使用不同语言的代码膨胀我的代码库(也许可以创建.coffee.haml模板而不是js.erb,我不知道) 2)我真的不喜欢“乱丢”我的视图文件夹的想法,主要是javascript文件,嵌入了一点ruby。 正如大卫在他的博客文章中谈到的那样,第二种方法非常依赖于客户端javascript,这可能导致客户端javascript代码膨胀,并且可能需要客户端模板,这在最坏的情况下可能意味着几乎是模板数量的两倍。 我决定采用的方法(并且想要询问是否完全是愚蠢的方式)如下: 1)设置remote: true标志,使链接和表单利用AJAX发布到服务器。 2)在我的控制器中,处理所有内容为html,如果请求是AJAX请求,则只需渲染而不进行布局: render partial: ”, layout: false if request.xhr? 。 这只是返回partial的HTML,并评估ruby代码。 3)在资产javascript文件中(例如.js.coffee ),听取ajax:success并从响应中追加HTML。 我喜欢这种方法,因为(在我相当简单的应用程序中)这允许我将所有代码保存在HAML / Coffeescript中,并避免使用任何javascript模板。 我意识到如果应用程序的复杂性增加,这个问题可能会有不同的特性,但我仍然觉得这是一个有效的问题:这是一个不好的方法来为Rails应用程序实现基于AJAX的架构(如果是这样的话) ,为什么?即有什么理由为什么从AJAX调用返回HTML而不是JSON是一个坏主意?)或者这是我应该继续使用的东西? 谢谢 :-)

使用HTTP put时,Rails会话为空

我有一种情况,一个特定的链接导致一个空的会话哈希。 这不好,因为我需要使用session_id来查找模型。 导致麻烦的链接是: {:preset_marker_url => image_url}), :method => :put, :remote => true ) %> 以及从会话ID中找到模型的代码(使用before_filter调用): def get_organisation @organisation = Organisation.find_by_session_id(session[:session_id]) end 在调试器模式下, session == {} 如果我将link_to更改为HTTP“get”而不是“put”,则会发送会话。 但是,此请求不适合’get’,因为它正在修改数据。 为什么“得到”包括会话,但“放”不是?

多次回复一个请求?

我的rails应用程序中的一个位置需要从外部服务器加载大量响应,目前看起来像这样: 用户向服务器发出AJAX请求。 显示“正在加载数据…”。 5-30秒后,rails app发送响应(假设数据尚未缓存)。 如果我能够在漫长的等待期间通知用户通知他们请求的进度,那将会好得多。 如: 用户提出请求(如前所述)。 显示消息“正在检索ABC” 显示消息“检索XYZ” 显示消息“处理数据” 完全响应正常。 我该怎么做呢? 我不认为向一个请求发回多个JavaScript响应是可能的,但不知道这样做的正确方法是什么!