ajax 全局拦载处理,可加密、过滤、筛选、sql防注入处理
//此方法放在公用的js里面即可。如此:所有的ajax请求都会通过此 $.ajaxSetup({ contentType: "application/x-www-form-urlencoded;charset=utf-8",beforeSend: function() { //发送前执行的函数 try { var params = arguments[1].data; //arguments是一个两个值的数组分别是0和1 re = /select|update|delete|truncate|join|union|exec|insert|drop|count|’|--|"|=|;|>|<|%/i; //可以根据需求自定义加减 for(var key in params) { console.log(params[key]); if(re.test(params[key])) { alert("请勿输入非法字符"); arguments[0].abort(); //终止请求 //请求方法记录相关日志 //location.href = params.replace(sQuery,"");//跳转到某个页面 } } } catch(e) { console.log(e); //请求方法记录相关日志 } },complete: function(XMLHttpRequest,textStatus) { try { //通过XMLHttpRequest取得响应头,sessionstatus, //var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); //if(sessionstatus == "timeout") { //如果超时就处理 ,指定要跳转的页面(比如登陆页) //} //此处可以对响应回来的数据进行解密 debugger; if(textStatus !== "error") { //通过XMLHttpRequest取得响应结果 var res = XMLHttpRequest.responseText; var jsonData = JSON.parse(res); console.log(jsonData); if(jsonData.state == -1) { //如果超时就处理 ,指定要跳转的页面(比如登陆页) alert(jsonData.msg); window.location.replace("/login/index.php"); } else if(jsonData.state == 0) { //其他的异常情况,给个提示。 alert(jsonData.msg); } else { //正常情况就不统一处理了 } } //请求方法记录相关日志 } catch(e) { console.log(e); //请求方法记录相关日志 } },error: function(jqXHR,textStatus,errorMsg) { // 出错时默认的处理函数 try { // jqXHR 是经过jQuery封装的XMLHttpRequest对象 // textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror" // errorMsg 可能为: "Not Found"、"Internal Server Error"等 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert(‘发送AJAX请求到"‘ + this.url + ‘"时出错[‘ + jqXHR.status + ‘]:‘ + errorMsg); //请求方法记录相关日志 } catch(e) { console.log(e); //请求方法记录相关日志 } },statusCode: { //自定义返回消息 404: function() { alert(‘数据获取/输入失败,没有此服务。404‘); },504: function() { alert(‘数据获取/输入失败,服务器没有响应。504‘); },500: function() { alert(‘服务器有误。500‘); } },//因为 jquery 在 GET 方法中会自动把 data 附加在 url 后面,所以将 processData 设置为 false 之后 url 后面会出现 [object object] ,这是 javascript 对象 toString() 过后的结果,也就是说我们的这个方法并不很适合 GET 方法 processData: false,//默认不序列化参数//dataFilter:对响应的数据进行过滤 }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |