/** * 统一请求ajax发送方法 * url 请求地址:例如:patient/health_index/add * params 请求参数 * dataType 数据类型:json等 * reqType 请求方式:get 或 post * error 请求失败处理方法 * success 请求成功处理方法 */ function sendPost(url, params, dataType, reqType, error, success,timeOut) { var userAgent = window.localStorage.getItem(agentName); var serverUrl = ""; if(url.indexOf("http://")>-1 || url.indexOf("https://")>-1 ) { serverUrl = url; } else { serverUrl = server + url; } //发送ajax请求 $.ajax(serverUrl, { data: params, dataType: dataType, beforeSend: function(request) { request.setRequestHeader("userAgent", userAgent); }, timeout: timeOut || 60000, type: reqType, error: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } error(res); }, success: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } success(res); } }); } function sendPostNoCache(url, params, dataType, reqType, error, success,timeOut) { var userAgent = window.localStorage.getItem(agentName); //发送ajax请求 $.ajax(server + url, { data: params, dataType: dataType, cache: false, beforeSend: function(request) { request.setRequestHeader("userAgent", userAgent); }, timeout: timeOut || 60000, type: reqType, error: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } error(res); }, success: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } success(res); } }); } /** * 统一请求ajax发送方法 * url 请求地址:例如:patient/health_index/add * params 请求参数 * dataType 数据类型:json等 * reqType 请求方式:get 或 post * error 请求失败处理方法 * success 请求成功处理方法 */ function sendPostAsync(url, params, dataType, reqType, error, success) { var userAgent = window.localStorage.getItem(agentName); //发送ajax请求 $.ajax(server + url, { data: params, dataType: dataType, async:false, beforeSend: function(request) { request.setRequestHeader("userAgent", userAgent); }, type: reqType, error: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } error(res); }, success: function(res) { if(res.status == 999 || res.status == 998 || res.status == 997){ loginUrl(res.status); return; } success(res); } }); } //重新登陆 var count = 0; function loginUrl(status){ var pageurl = ""; // var hreftemp = server + "wx/html/home/html/zhmm-login.html?type=0&openid="; var hreftemp = "../../home/html/login.html?type=0&openid="; var content = ""; count ++; try{ if(d){ d.close(); } }catch(e){ //TODO handle the exception } //如果有两个以上的请求会获得999等错误码的时候,只处理第一个 if(count >= 2){ return false; } if(status == 999){ content = "此账号已在别处登录,需要请重新登录"; }else if(status == 998){ content = "登录超时,需要请重新登录"; }else if(status == 997){ content = "此账号未登录,需要请重新登录"; // hreftemp=server + "wx/html/home/html/zhmm-login.html?type=0&openid=" hreftemp = "../../home/html/login.html?type=0&openid="; } var openid = ""; var userAgent = window.localStorage.getItem(agentName); if(userAgent){ var jsonstr = $.parseJSON(userAgent); openid = jsonstr.openid; } if(openid==null||openid==""){ Request = GetRequest(); openid = Request["openid"]; } clearAgent(); //将保存访问路径的逻辑放到clearAgent后面 pageurl = window.parent.location.href; saveAgentPage(pageurl); dialog({ skin:"ui-dialog ax-popup pror", content: content, ok: function (){ count = 0; window.parent.location.href = hreftemp+openid; } }).showModal(); } // 获取异步请求处理Promise对象 function getReqPromise(url, params, dataType, reqType) { return new Promise(function(resolve, reject) { sendPost(url, params,dataType, reqType, function queryFailed (xht, type, throwErr) { reject({ xht:xht, type:type, throwErr:throwErr }) } , function success(res) { resolve(res); }); }); } /* * reqs: 请求的参数数组,格式:[{url:'a/xxx', reqType: 'POST', data:{...}},{url:'b/xxx',data:{...}}] * */ function getReqPromises(reqs) { if(!reqs || !reqs.length) { return new Promise(function(resolve, reject) { resolve([]); }); } return Promise.all(_.map(reqs,function(param){ return getReqPromise(param.url,param.data, 'json', param.reqType); })); }; /* * 获取图片路径方法修改 */ function getImgUrl(str){ if(typeof str != 'string'){ return ""; } if(str.length == 0){ return ""; }else{ if(str.indexOf("../")>-1){ //访问本地路径 return str; }else if((str.indexOf("http://")>-1) || (str.indexOf("https://")>-1)){ return str; }else{ //服务器上的图片路径 return imgUrlDomain + str; } } }