//此方法放在公用的js里面即可。如此:所有的ajax请求都会通过此
 $.ajaxSetup({
 contentType: "application/x-www-form-urlencoded;charset=utf-8",
 beforeSend: function() { //发送前执行的函数
 try {
/**
* 当 processData: false,此时后台接收的值都会是object类型。此时应该把所有参数拿出来做成序列化形式 如:"name=bill&age=18" 否则后台无法接收
 * 当 processData: true或者不设置时 json数据是已经序列化成字符类型 。如:"name=bill&age=18"。应用以下方法;
 */
 //var params = arguments[1].data;
 //if (params !== "" || params !== null) {
 // var re = /select|update|delete|truncate|join|union|exec|insert|drop|count|’|--|"|=|;|>|<|%/i;
 // params.split('&').forEach(function (item) { //js的forEach()方法
 // item = item.split("=");
 // var name = item[0];//名称
 // var val = item[1];//值
 // if (re.test(item[1])) {
 // alert("请勿输入非法字符");
 // arguments[0].abort(); //终止请求
 // //请求方法记录相关日志
 // //location.href = arguments[1].data.replace(sQuery, "");
 // }
 // });
 //}
 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, "");//跳转到某个页面
 }else{
//加密在此处做。后台可以做全局统一解密
//此时应该把所有参数拿出来做成序列化形式 如:"name=bill&age=18" 否则后台无法接收
}
 }
 } 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:对响应的数据进行过滤
 });