0

我正在尝试通过 AJAX 进行身份验证,但无法弄清楚在 ajax 请求完成时如何显示消息。当电子邮件和密码无效时,我需要显示错误消息。

一个haml页面的代码

=form_for(resource, :as => resource_name, :url => session_path(resource_name), :remote => true, :format => :json) do |f| 
    = label :user, :email, "Email"
    = text_field :user, :email
    = label :user, :password
    = password_field :user, :password
    %input{:type => "submit", :value => "Sign in"}

和结果 在此处输入图像描述

你的想法?

4

1 回答 1

3

由于您使用的是 JSON 格式(仅数据,而不是操作),因此您需要某种客户端处理。

尝试在处理程序中处理响应ajax:success。使用 jQuery,它可以是这样的:

$('#the_form_id').on('ajax:success', function(data, status, xhr) {
  if(data) {
    if(data.status) { // Login successful
      alert("Login successful");
    }
    else {
      alert(data.errors);
      // To show errors inside a DOM element
      $("#error-wrapper").html(data.errors);
    }
  }
});
于 2012-09-16T14:40:28.353 回答