0

我想以 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);
   });

我已经尝试了如何在 Jquery POST (xhr.status) 中获取 HTTP 错误响应代码中给出的答案,它只返回 0。认为实际响应是 401,显示在 Web 控制台中。什么是正确的访问方式POST 命令的返回状态?

4

2 回答 2

1

如果“返回”是指“在来自服务器的响应中”,则可以访问回调中的值,尤其是.always()这样,无论是否有错误都会调用它:

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

在这些回调之外,将在请求仍在等待完成时评估该语句。所以,poster.status将是它的默认值, 0.


但是,如果您的意思是要:

return poster.statusCode;

然后我关于仍然未决的请求的观点再次适用。您不能这样做并通过异步请求获取实际值。

请参阅如何从异步调用返回响应?更多。它专注于responseText,但status大约在同一时间设置。

于 2013-07-28T12:52:33.663 回答
1

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

$.ajax({
statusCode: {
404: function() {
alert("code 404");
}
200:function(){
alert("code 200");
}
}
});
于 2013-07-28T12:46:11.150 回答