用jquery,ajax提交表单,无法获得成功回调
好吧,我对此非常接近,但我需要一些帮助来克服驼峰。 我正在尝试通过AJAX在rails应用程序中提交表单,该应用程序发送电子邮件,然后在成功时执行一些代码。 当我在表单上输入时,AJAX正在运行,因为我收到了电子邮件。 但是,成功代码未运行(也不是错误)。 我也试过’完成:’但是没有用,所以我怀疑它可能是默认表单行为的一些问题? 想法?
这是ajax:
// AJAX Function to submit email form without refreshing page $("#contact_me").submit(function(){ var dataSet = $(this).serialize(); $.ajax({ type: "POST", url: $(this).attr("action"), data: dataSet, success: function(){ alert("Sent!"); }, error: function(){ alert("Something went wrong!"); } }); return false; })
它调用的rails动作:
def email_me name = params[:name] email = params[:email] content = params[:text] ContactMailer.first_contact(name, email, content).deliver head :ok end
此外,forms本身
这真的是最终导致最大问题的小事情。 我忘了将整个函数包装在函数(){..}中。 去图,现在很棒。 谢谢大家的帮助。
$(function(){ $("#contact_me").submit(function(){ var dataSet = $(this).serialize(); $.ajax({ type: "POST", url: $(this).attr("action"), data: dataSet, complete: function(){ alert("Sent!"); }, error: function(){ alert("Something went wrong!"); } }); return false; }); })
完全随机的猜测,请原谅我,如果它是荒谬的,它可以render :nothing => true
防止Rails发起回调?
您的rails应用程序应返回JSON。 您正在调用JSON请求,它应该是JSON响应。 我希望这有帮助。
尝试渲染空白的json,因为你的JS期待JSON响应。
渲染:json => {}
- 如何在自动调用的函数(如.ajax()的beforeSend())中正确使用jQuery Deferred / promise?
- 从jquery ajax调用中分配变量返回undefined
- jQuery AJAX和VBscript – 在jQuery AJAX中使用POST时无法获取VBscript变量中的值
- Ajax脚本仅适用于Firefox(不适用于Chrome,Safari,Edge,…)
- jQuery使用AJAX加载Google Visualization API
- 从其他页面打开fancybox中的请求div
- 如何使UpdateTargetId在Ajax.ActionLink中工作?
- 将ajax请求绑定到特定元素Rails 3.1
- 当用户到达页面末尾以加载新内容时,如何调用JavaScript(AJAX)函数?