Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 以json格式接收RubyonRails中ajax请求的处理结果_Ruby On Rails_Ruby_Ajax_Json_Haml - Fatal编程技术网

Ruby on rails 以json格式接收RubyonRails中ajax请求的处理结果

Ruby on rails 以json格式接收RubyonRails中ajax请求的处理结果,ruby-on-rails,ruby,ajax,json,haml,Ruby On Rails,Ruby,Ajax,Json,Haml,我正在尝试通过AJAX进行身份验证,但我不知道在AJAX请求完成时如何显示消息。当电子邮件和密码无效时,我需要显示一条错误消息 haml页面的代码 =form_for(resource, :as => resource_name, :url => session_path(resource_name), :remote => true, :format => :json) do |f| = label :user, :email, "Email" = t

我正在尝试通过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"}
结果呢


您的想法?

由于您使用的是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);
    }
  }
});

由于您使用的是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);
    }
  }
});

我们需要您的UsersController/SessionsController代码来回答您的问题。是的,控制器看起来像什么?我们需要您的UsersController/SessionsController代码来回答您的问题。是的,控制器看起来像什么?在ajax请求中,您必须注意自己显示消息。如果为显示flash消息保留了特定的容器/dom元素,则可以修改dimuchs answer以在此处显示消息。在ajax请求中,您必须自行显示消息。如果为显示flash消息保留了特定的容器/dom元素,则可以修改dimuchs answer以在此处显示消息。