码迷,mamicode.com
首页 > 数据库 > 详细

ajax 全局拦载处理,可加密、过滤、筛选、sql防注入处理

时间:2018-09-16 15:26:13      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:console   int   记录   function   error:   就是   win   统一   服务   

//此方法放在公用的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:对响应的数据进行过滤
});

ajax 全局拦载处理,可加密、过滤、筛选、sql防注入处理

标签:console   int   记录   function   error:   就是   win   统一   服务   

原文地址:https://www.cnblogs.com/Mr-lin66/p/9655881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!