2017-02-22 7 views
3

私はいくつかのAJAX初めてやってる...コード:フェールをキャッチしてもコンソールエラーが表示されますか?

jQueryの

form_ajax_promise = $.ajax({ 
    type : "POST", 
    url : '/orders/create_or_update', 
    dataType: 'json', 
    contentType: 'application/json', 
    data : JSON.stringify(params) 
}) 
form_ajax_promise.then(
    function(response) { 
    formSuccess(response) 
    }, 
    function(response) { 
    formFailure(response) 
    } 
) 

コントローラ

def create_or_update 
    if @object.save 
    # corresponds with formSuccess 
    render json: {"id" => @order.id}, status: 200 
    else 
    # corresponds with formFailure 
    render json: {"errors"=> @order.errors.full_messages}, status: 400 
    end 
end 

successパスがうまく動作します。 formFailureはただ単純な関数であると仮定すると、failureルートをテストするには...何が起こっている私が気づい

function formFailure(response){ 
    console.log("successfully inside of formFailure") 
} 

consoleは、上記のように、適切なログメッセージを表示するだけでなく、私にエラーを示すことです。

Failed to load resource: the server responded with a status of 400 (Bad Request) 

このエラーは起こりますか? $.thenに適切なfailを提供して以来、私は好きでしたか?

EDIT混乱のため

謝罪私は行動に失敗記述しようとしていたことから、これは、レンダリング/再直接、私はただ怠けていると他のコードを切り出した複数のケースではありません。私の間違い。コードは上記で編集されています。

+0

あなたは 'status:400'でレンダリングしています。これは正しい動作です。 – Sajan

+0

2つの質問(1)どのバージョンのjQueryですか? (2) 'form_ajax_promise'はさらに処理されますか? –

+0

1)jQuery 2.2.4、2)それ以上処理されません – james

答えて

1

多分このような何かがします。これは@order

def create_or_update 
    # Your code here to create or update @order 
    if @order.save 
    # corresponds with formSuccess 
    render json: {"id" => @order.id}, status: 200 
    else 
    # corresponds with formFailure 
    render json: {"errors"=> @order.errors.full_messages}, status: 400 
    end 
end 
+0

申し訳ありません私はちょうどコードを省略していて、怠け者で、何が起きているのですか? – james

0

一般的に無効であるとき、あなた@orderが正常に保存されsuccesserrorを返す複数のレンダリングまたはリダイレクトエラーのコードの結果、この種のだろう。同じ関数内で複数のレンダリングやリダイレクトを使用するのではなく、ifやreturn文を使用します。あなたのケースでは

render json: {"errors"=> @order.errors.full_messages}, status: 400

は、コンソールでこのエラーが表示されるように、(不正な要求のためである)、エラーコード400が受信され、ブラウザに指示したレンダリングされています。 @Deepak Mahakaleが上記で共有したコードの使用を改善しました。

希望します。

+0

申し訳ありませんコメント/編集 – james

関連する問題