jquery ajax是个很常用接口,而在请求时候,可能存在响应401的情况(身份认证过期或未登录),比较容易出现在混合应用上,如何进行身份认证,重发失败请求,还是值得注意的。
ajax请求有两种方式
1. 回调
最常写的方式,成功失败处理以回调方式传入。
$.ajax({
ajax参数…
success : xxxxxx
error: xxxxxx
});
ajax调用本身返回就是一个Deferred对象,成功失败回调不以参数传入。

应对处理401的方式也是有两种。
401处理的两种方式
**1. 回调
这种方式的处理比较简单,在失败回调里面判断401,如果是则进行身份认证,成功重发请求。

function getXXXX(type, url, data, success, error){ $.ajax({ ajax参数… success : xxxxxx error : function(xhr,textStatus,errorThrown){

  1.  if (xhr.status == 401) {
  2. // 刷新身份认证方法

(function(){

  1. getXXXX(type, url, data, success, error);
  2.  });
  3. } else{
  4.  // 调用外部的error
  5. error && error(xhr,textStatus,errorThrown);
  6. }
  7. }

});

}

ajax error的详细信息查看

$.ajax({

  1. url: '/cxz/add',
  2. success: function (data) {
  3. alert(data);
  4. },
  5. error: function (xhr, textStatus, errorThrown) {
  6. /*错误信息处理*/
  7. alert("进入error---");
  8. alert("状态码:"+xhr.status);
  9. alert("状态:"+xhr.readyState);//当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
  10. alert("错误信息:"+xhr.statusText );
  11. alert("返回响应信息:"+xhr.responseText );//这里是详细的信息
  12. alert("请求状态:"+textStatus);
  13. alert(errorThrown);
  14. alert("请求失败");

}

});