2017-02-16 5 views
0

を返すアヤックスにステータスコードを返し...Railsが、私はここに非常に非常にシンプルな何かが欠けてると確信している未定義

JQUERY CODE 

    $.ajax({ 
    type : "POST", 
    url : '/orders/create_or_update', 
    dataType: 'json', 
    contentType: 'application/json', 
    data : JSON.stringify(params) 
    }) 
    .done(function(response){ 
    console.log(response.status) 
    console.log(response) 
    }) 

CONTROLLER CODE 

    def create_or_update 
    ... 
    render json: {"name" => "test"}, status: 200 
    end 

OUTPUT OF CONSOLE.LOG 

    undefined 
    Object: {name: "test"} 

はなぜ私のjQueryのでresponse.statusstatus: 200を返していませんか?

+0

可能な複製:http://stackoverflow.com/questions/5344145/how-to-get-response-status-code-from-jquery-ajax –

答えて

0

EDIT2:応答が成功であれば

は実際には、.always機能のために、引数が(data, textStatus, jqXHR)ですが、それは失敗だ場合、それは(jqXHR, textStatus, errorThrown)です。ドキュメントで

が、それは次のように述べています:だから

jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { }) 

jQuery Docs

、あなたはすべての応答のために常にでjqXHR.status表示するif/elseを必要があると思います。

EDIT:

あなたresponseはちょうどあなたが戻っrender呼び出しから取得しているオブジェクトです。ステータスの概念はありません。それはあなたが.statusにそれが定義されていない理由です。私は.alwaysが必要であると思っています。コントローラーからの応答は.done.failです。あなただけの今まで.done方法を取得するつもりだ、とあなたはそれはそれの世話をしたい場合は、(余分なtextStatus引数に注意してください)この操作を行うことができます。

$.ajax({ 
    type : "POST", 
    url : '/orders/create_or_update', 
    dataType: 'json', 
    contentType: 'application/json', 
    data : JSON.stringify(params) 
    }) 
    .done(function(response, textStatus, xhr){ 
    console.log(xhr.status) 
    console.log(response) 
    }) 

だから、あなたが行うことができる必要がありますこれ:

$.ajax({ 
    type : "POST", 
    url : '/orders/create_or_update', 
    dataType: 'json', 
    contentType: 'application/json', 
    data : JSON.stringify(params) 
    }) 
    .done(function(response){ 
    console.log(response.status) 
    console.log(response) 
    }).always(function(a, textStatus, b){ 
    console.log(a.status); // One of these two will be `undefined` 
    console.log(b.status); 
    }) 

これでステータスがログに出力されます。

+0

これは私にもう少し説明できますか?常に必要なのですか?私はログを読んでから '応答'が十分であるはずだと思ったので、なぜそれがうまくいかないのか混乱しているのです – james

関連する問題