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){
if (xhr.status == 401) {// 刷新身份认证方法(function(){
getXXXX(type, url, data, success, error);});} else{// 调用外部的errorerror && error(xhr,textStatus,errorThrown);}}});
}
ajax error的详细信息查看
$.ajax({
url: '/cxz/add',success: function (data) {alert(data);},error: function (xhr, textStatus, errorThrown) {/*错误信息处理*/alert("进入error---");alert("状态码:"+xhr.status);alert("状态:"+xhr.readyState);//当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。alert("错误信息:"+xhr.statusText );alert("返回响应信息:"+xhr.responseText );//这里是详细的信息alert("请求状态:"+textStatus);alert(errorThrown);alert("请求失败");}
});
