1. 程式人生 > >ajax 全局攔載處理,可加密、過濾、篩選、sql防註入處理

ajax 全局攔載處理,可加密、過濾、篩選、sql防註入處理

deb nstat sda ESS ajax 記錄 obj delete 統一處理

//此方法放在公用的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防註入處理