Ext.Ajax.addListener("beforerequest", function(conn, options, eOpts ){
if(options){
var nParam = options.params;
if (nParam != undefined) {
//将form-data参数转为数组
var arrParam = objTransArray(nParam);
//新增时间戳
var timestamp = new Date().getTime();
arrParam.push("timestamp="+timestamp);
nParam["timestamp"]=timestamp;
// end
//新增get请求的参数
arrParam = addGetUrlParam(arrParam, options.url)
//排序
arrParam.sort();//排序 从小-大 ascii码
//构建加密字符串
var newP = newParamBuilder(arrParam);
console.log("sign start");
console.log(newP);
console.log("sign end");
//加密
var sign = signBuild(newP);
var headers = new Object();
headers.verifyHeaderValue = sign;
options.headers = headers;
options.params = nParam;
}
}
}, this);
/**
* obj对象转为数组
* @param obj
*/
function objTransArray(obj){
var array = $.map(obj,function(value,key){
if(value != null && value != "null" && value != "" && value !=undefined) {
return [key + "=" + value];
}
});
return array;
}
function addGetUrlParam(arr,url){
var urlArr = url.split("?");
if(urlArr[1] != undefined){
var subUrlArr = urlArr[1].split("&");
for(var i=0; i< subUrlArr.length;i++){
arr.push(subUrlArr[i])
}
}
return arr;
}
function newParamBuilder(arr){
var param = "";
for(var i = 0;i < arr.length; i++) {
if(i + 1 == arr.length) {
param += arr[i] ;
}else{
param += arr[i] + "123#&%678";
}
}
return param;
}
/**
* 生成校验值
* @param arr
* @returns {*}
*/
function signBuild(param){
return $.md5(param);//依赖jquery.md5.js
}