如何获取jquery POST命令的响应状态?

时间:2013-07-28 12:37:02

标签: javascript jquery

我想访问返回statusCode为200/401等。我该怎么做?

   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.实际响应是401,这是在Web控制台中显示的。访问返回状态的正确方法是什么POST命令?

2 个答案:

答案 0 :(得分:1)

虽然成功和错误回调是从响应代码生成的,但您也可以这样做。看这里http://api.jquery.com/jQuery.ajax/

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

答案 1 :(得分: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几乎同时设置。