javascript - 我应该担心这个 422(不可处理实体)错误吗? ( rails 与设计)

标签 javascript ruby-on-rails json ruby-on-rails-4 devise

我正在使用ajax提交我的注册表单。

enter image description here

当详细信息正确时,表单提交正确。如果细节错误,我也能够正确捕获错误。但是,如果详细信息错误,我还可以在控制台日志上看到 POST http://localhost:3000/users 422 (Unprocessable Entity) 错误消息:

enter image description here

我的问题是,我应该担心这个错误吗?或者这是正常的? 如果这不正常,我该如何正确处理?

谢谢!

##################################更新########### ###################

来自终端的错误消息:

Started POST "/users" for ::1 at 2016-06-15 09:20:20 +0100
Processing by RegistrationsController#create as JSON
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"0D1qSK8IfbuefQ0bwEdKQFD+6WZ8XJtCnl2FZ6Nln9khLtv6qYCmoTKhwBFkVIJdYXSRQJ4e+9QAAdJ5UJzukQ==", "user"=>{"first_name"=>"John", "last_name"=>"Doe", "email"=>"ryzalyusoff@gmail.com", "password"=>"[FILTERED]"}, "commit"=>"Sign up"}
   (0.2ms)  BEGIN
  User Exists (0.6ms)  SELECT  1 AS one FROM `users` WHERE `users`.`email` = BINARY 'ryzalyusoff@gmail.com' LIMIT 1
   (0.2ms)  ROLLBACK
Completed 422 Unprocessable Entity in 93ms (Views: 0.4ms | ActiveRecord: 1.1ms)

注册 Controller :

class RegistrationsController < Devise::RegistrationsController
  respond_to :json

  def create
    super
  end
end

application.js:

$(function(){

  $("form#ajax_signup").submit(function(e){
     e.preventDefault(); 
     var user_info = $(this).serializeObject();
     console.log("About to post to /users: " + JSON.stringify(user_info));
     $.ajax({
       type: "POST",
       url: "http://localhost:3000/users",
       data: user_info,
       success: function(json){
         console.log("The Devise Response: " + JSON.stringify(json));
       },
       error: function(xhr) { 

            var errors = jQuery.parseJSON(xhr.responseText).errors; 

            for (messages in errors) { 
                error_messages =  messages + ' ' + errors[messages];

                console.log(error_messages);
            } 

       }, 
       dataType: "json"
     });
  });

});

最佳答案

不,您不必担心控制台中的 422,此红色警告不会破坏您的 JavaScript 代码。 但是这个错误可以为您的 JavaScript 代码提供简单的验证处理,例如:

$('#form').on('ajax:error', 
  function () { return 'handle me'; }
);

关于javascript - 我应该担心这个 422(不可处理实体)错误吗? ( rails 与设计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829749/

相关文章:

javascript - Gulp [Vue 警告] : Failed to mount component: template or render function not defined

ruby-on-rails - Rails 查询,基于来自不相关模型的范围

python - Django - 导入错误: cannot import name simplejson

jquery - 我可以对不同的门户网站使用 ajax GET 请求吗?

php - 当我单击登录按钮时发生 fatal error 调用成员函数execute()

javascript - 如何使 visual studio javascript 格式化工作?

javascript - 为什么 NVD3.js 线加条形图示例呈现两个图表而不是一个?

javascript - MutationObserver 使用的一些实际例子有哪些?

jquery - 如何在 pickadate 函数中给出 selectYear

ruby-on-rails - 在 rspec 中运行测试组