用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 => {}