簡體   English   中英

我應該擔心這個422(不可處理實體)錯誤嗎? (軌道與設計)

[英]Should I worry about this 422 (Unprocessable Entity) error? (Rails & Devise)

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

在此處輸入圖片說明

詳細信息正確時,表格可以正確提交。 如果詳細信息有誤,我也可以正確捕獲錯誤。 但是,如果詳細信息有誤,我的控制台日志上也會顯示POST http://localhost:3000/users 422 (Unprocessable Entity)無法POST http://localhost:3000/users 422 (Unprocessable Entity)錯誤消息:

在此處輸入圖片說明

我的問題是,我應該擔心這個錯誤嗎? 還是這很正常? 如果這不正常,我應該如何正確處理呢?

謝謝!

############################## UPDATE ################## #############

來自終端的錯誤消息:

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)

注冊控制器:

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'; }
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM