2013-07-28 31 views
-1

我想訪問返回statusCode爲200/401 etc.Iow我可以這樣做嗎?如何獲得jquery POST命令的響應狀態?

var poster=$.post(url, 
    {nickname:name, email:mail},function(data) { 
    alert('Inside poster done'); 
    }); 

    alert(poster.statusCode); 

    poster.done(function(data){ 
    alert(data); 
    }); 

我曾嘗試在How do I get HTTP error response code in Jquery POST(xhr.status)給出的答案,這只是返回0.Thought實際響應是401這是在網絡console.What的訪問返回狀態的正確的方式顯示的POST命令?

+2

在...中不起作用嗎?崩潰?返回錯誤的值?在Javascript控制檯中的任何東西? –

+0

@JoachimIsaksson:在控制檯上返回0。 – Aravind

+0

@JoachimIsaksson:我正在根據本文檔中的最後一個示例進行工作:http://api.jquery.com/jQuery.post/ – Aravind

回答

1

雖然成功和錯誤回調是從響應代碼生成的,但您也可以這樣做。看看這裏http://api.jquery.com/jQuery.ajax/

$.ajax({ 
statusCode: { 
404: function() { 
alert("code 404"); 
} 
200:function(){ 
alert("code 200"); 
} 
} 
}); 
1

如果「返回」你的意思是「從服務器響應,」你可以訪問值的回調中,特別是與.always()故稱是否有錯誤或不是:

poster.always(function(data){ 
    alert('status: ' + poster.status); 
}); 

在這些回調之外,當請求仍在等待完成時,將評估該語句。因此,poster.status將成爲其默認值0


但是,如果你的意思是你想:

return poster.statusCode; 

然後我關於請求點仍然懸而未決再次應用。你只是不能做到這一點,並獲得異步請求的實際價值。

查看How do I return the response from an asynchronous call?瞭解更多。它側重於responseText,但status大約在同一時間。

+0

poster.always顯示0作爲狀態,實際狀態爲401.那爲什麼? – Aravind