Tag: ajax

Rails – 通过选择下拉菜单执行ajax调用

我有一个包含select标签的视图,它不是表单的一部分,只是一个独立的下拉菜单。 单击其中一个选项,我想执行ajax调用 这是选择标记 这是一个基本的jquery,我试图通过它来检测变化 jQuery(function($) { console.log(‘clicked’); $(“#hiring_stage_dropdown”).click(function() { var state = $(‘select#hiring_stage_dropdown :selected’).val(); console.log(state); }); }) 但是当我选择其中一个选项没有任何反应时,我知道ajax代码不存在,但我现在想要的是在选择其中一个选项时在控制台中看到一些东西。 我在这里缺少什么? 这就是选择的样子 Hiring stage Manager Step 1 Manager Step 2

如何在进行ajax调用后从控制器呈现部分

我在向控制器中的方法发出AJAX请求后尝试渲染部分。 这是我目前的AJAX调用: $(‘.savings_link’).click(function(event){ $.ajax({ type: ‘GET’, url: ‘/topics/savings_easter_egg’, data: { savings: data[key][‘saving’] } , dataType: ‘json’, }); event.preventDefault(); // Prevent link from following its href }); 这个调用当前有效,它命中我的控制器方法,我尝试返回并渲染部分。 def savings_easter_egg @savings = params[:savings] if params[:savings] return render :json => { :html => render_to_string({ :partial => “topics/savings”, :locals => { :savings => @savings } }) } end […]

无法通过Chrome扩展程序跨站点ajax api调用?

我正在尝试创建一个名为chrome应用程序api的chrome扩展程序。 目前api返回json并且工作正常,但是当我尝试将其构建为chrome扩展时,它说: 由于Content-Security-Policy,拒绝从’http://mysite.com/demo?q=hello?callback=jQuery16409466155741829425_1342489669670&_=1342489677171’加载脚本。 我查看了文档http://code.google.com/chrome/extensions/contentSecurityPolicy.html ,除非我将我的网站实施为https版本,否则我听不到这样做。 (在“放宽默认政策”部分下)我不确定我是否理解正确,仅仅因为这个而做出如此大的改变是荒谬的。 我被误解了吗? 或者有解决方法吗? 谢谢。

Rails remote => true confusion(没有format.js?)

我正在尝试学习如何在窗体上使用带有remote => true的rails。 ruby on rails官方网站上的以下示例让我感到困惑。 即使在@user.save调用失败时没有“ format.js ”代码,它仍然可以正常工作。 # app/controllers/users_controller.rb # …… def create @user = User.new(params[:user]) respond_to do |format| if @user.save format.html { redirect_to @user, notice: ‘User was successfully created.’ } format.js format.json { render json: @user, status: :created, location: @user } else format.html { render action: “new” } format.json { render json: […]

客户端数据存储

我有以下情况:用户提交表单,我通过Ajax请求从服务器获取数据并显示图表。 但是,我想让用户选择以表格forms显示图表中的数据,或者在提交表单后导出为csv。 我想知道什么是存储数据的最佳解决方案,考虑到如果用户打开一个新窗口再次提交表单,我不希望数据持续存在。 该应用程序在Rails中。 谢谢。

从ajax调用重定向主窗口

我有一个ajax调用控制器来检查身份validation,当没有身份validation时,它会将调用发送到signin控制器,该控制器检查它是否是xhr请求。 如果是,它将包含page.redirect_to的rjs呈现到signin路径,并且主窗口被重定向到signin页面。 这在谷歌浏览器中完美无缺,但在Firefox中失败。 rjs文件中唯一的代码是: page.redirect_to(“http://localhost:3000/signin”) 正如我所说,它在chrome中完美运行但Firefox(v3.6)拒绝重定向主窗口。 有没有人对如何在Firefox中使用它有任何想法?

Ruby on Rails Ajax调用运行控制器代码,返回成功,但不渲染视图

我的页面上有一个工作搜索机制; 带有文本字段和“搜索”标记的提交按钮的表单。 我的页面上还有一个基于raphael.js的动画项目,上面有可点击的项目,我想要执行搜索。 点击后,我发送给我的控制器params数据,这些数据是从raphael对象中获取的搜索项。 正在传递数据,并且控制器代码运行,但相应的视图无法呈现,因此单击对用户显示为什么都不做。 所以点击后,我就像这样做一个Ajax调用: 文件searchthing.js // Add a search function circle.click(function (e) { var csrch = this.data(‘label’); // alert(‘clicked ‘ + csrch); e.preventDefault(); $.ajax({ type: “GET”, url: “/bubbleBar”, data: $.param({ srchterm: csrch} ), success: function(){ // window.location.replace(“/pictures”); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(“— error: ” + errorThrown); } }); }); 我的控制器中的’bubbleBar’操作成功触发,传输搜索条件,并重定向到处理搜索的工作索引操作: 文件myController.rb: […]

如何通过在Rails上启用Turbolinks的AJAX正确呈现部分?

我目前正在开发一个Rails应用程序,它必须与外部Web API通信,从结果更新DB记录并异步更新视图。 我目前在做什么 我有一个list操作,我直接从数据库中显示数据,其中包含一个在分页表中发送的电子邮件列表。 呈现视图后,我需要向应用程序(在不同的路径上)发出一个AJAX请求,该请求向外部Web API发出请求,更新数据库,然后使用包含所有电子邮件的table呈现部分,同样在原始list操作上呈现的。 以下代码处理AJAX请求: # _mail_list_loader.js.erb document.addEventListener(“turbolinks:load”, function() { $.ajax({ url: ‘/certified_mail/mail_list’, type: ‘get’, data: { page: , rut: , from: , to: , ids: } }); }); 哪个响应是.js.erb呈现实际table的部分: # mail_list.js.erb $(‘#mail-list’).html(”); _mail_list_loader.js.erb在我的application.html.erb呈现: # application.html.erb … 对于首先加载表的操作和处理AJAX请求的操作,我的控制器看起来像这样: class CertifiedMailController < ApplicationController def list if params[:page].nil? || params[:page].to_i <= 0 redirect_to action: :list, […]

Rails – 无法在VPS上从csv文件创建记录

我在VPS上部署了我的rails应用程序。 我有一个上传csv文件和基于文件行创建记录的function。 我在ActiveAdmin中使用此function。 单击上传按钮,我通过Ajax调用调用import_csv方法。 方法如下: collection_action :import_csv, method: :post do CSV.foreach(params[:file].path, headers: true) do |row| item = Item.where(code: row[“code”]).first || Item.new row[“status”] = row[“status”].downcase if row[“status”] row[“created_by”] = current_user.get_name row[“modified_by”] = current_user.get_name item.attributes = row.to_hash item.save! end render text: { success: “Successfully imported” }.to_json end 因此,在成功时,我将警报视为”Successfully imported” ,如果有任何错误,我会收到”Something went wrong.”的警报”Something went wrong.” 这是在Ajax调用的错误块中设置的。 现在的问题是: 我无法通过CSV文件为Item模型创建记录。 […]

部分Javascript(Ruby on Rails)

例如,我为post提供了很多评论。 在评论部分我有javascript将重复这么多次我有多少评论 _comment.html.erb <div id="content_”> $(“content_”).click(function() { a​lert(​’content of comment ‘​) }); 避免在源代码中重复使用javascript的最佳方法是什么? 我试图创建* _comment.js.erb *文件并将javascript放在那里,但我不明白如何使它工作。 有谁能解释我如何解决这个问题?