ajax全局加密,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|’|--|"|=|;|>|

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:对响应的数据进行过滤

});

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值