gpt4 book ai didi

jquery - ajax:成功未触发ajax Rails 4应用程序

转载 作者:行者123 更新时间:2023-12-01 04:02:16 25 4
gpt4 key购买 nike

我在 Rails 应用程序中有 jQuery 函数,我试图从中进行 ajax 调用。

问题是它没有返回ajax响应,但它发送ajax调用成功。

我需要将我的 ajax 调用与该函数绑定(bind),以便我能够显示响应。

jQuery 代码:

$(document).ready(function () {
$("#contact_us").bind("ajax:success", function (e, data, status, xhr) {
if (data.success) {
$("#alert_success").show();
$(".CaptchaError").html(data.message);
} else {
$("#alert_failed").show();
$(".CaptchaError").html(data.message);
}
});
});

Rails 代码:

class MailController < ApplicationController
prepend_before_action :check_captcha

def contact_us
full_name = params['contact_full_name']
last_name = params['contact_last_name']
phone = params['contact_phone']
website = params['contact_website']
email = params['contact_email']
message = params['contact_message']
ContactMailer.send_email(full_name, last_name, phone, website, email, message)
end

private
def check_captcha
unless verify_recaptcha
return render json: {:success => false, :message => "You cant use this captcha code"}
else
contact_us
return render json: {:success => true, :message => "Your email has been sent successfully"}
end
end
end

rails 形式:

<%=form_tag contact_us_mail_index_path, :id => "contact_us", 
:format => :json, :remote => true do %>

<%end%>

按钮代码:

<button type="submit" class="btn btn-lg btn-default"><i class="fa
fa-check"></i> SEND MESSAGE</button>

application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require plugins/jquery/jquery-2.2.3.min.js
//= require scripts
//= require plugins/slider.revolution/js/jquery.themepunch.tools.min
//= require plugins/slider.revolution/js/jquery.themepunch.revolution.min
//= require view/demo.revolution_slider
//= require plugins/smoothscroll
//= require contact

routes.rb

resources :mail, except: [:show,:new,:create,:edit,:update,:destroy] do
collection do
post :contact_us
end
end

最佳答案

经过多次尝试,终于解决了这个问题。

该问题与turbolinks有关。根据我的研究,问题出在 application.js 文件中。

我做了一些更改,发现 turbolinks js 造成了问题。

所以,我安装了一个名为: jquery-turbolinks 的 gem

安装后,我的application.js如下:

//= require plugins/jquery/jquery-2.2.3.min
//= require jquery.turbolinks
//= require jquery_ujs
//= require scripts
//= require contact

答案贴在我的@SpunkyLive answer上确实对我帮助很大,但这还不足以为我提供方向和修复代码。

关于jquery - ajax:成功未触发ajax Rails 4应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38472614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com