今天用ajax在前台傳遞資料,為了避免資料被篡改保證安全,做了乙個簽名限制。
頁面需要引入md5.js檔案
1.時間戳來做處理隨時更新
2.用鍵值對拼接 加密 轉大寫
jq**
//ajax部分
var data =
;getsignature
(data)
$.post
("/php/tijiao/"
,, function (data)})
//封裝加密
function getsignature
(data)
//ascii 排序
function ksort
(vm, inputarr, sort_flags)
, keys =
, sorter, i, k, that = vm,
strictforin =
false
, populatearr =
;switch
(sort_flags)
;break
;case
'sort_locale_string'
:// compare items as strings, original by the current locale (set with i18n_loc_set_default() as of php6)
var loc = vm.
i18n_loc_get_default()
; sorter = vm.php_js.i18nlocales[loc]
.sorting;
break
;case
'sort_numeric'
:// compare items numerically
sorter = function (a, b)
;break
;// case 'sort_regular': // compare items normally (don't change types)
default
: sorter = function (a, b)
else
if(anumeric &&
!bnumeric)
elseif(
!anumeric && bnumeric)
return a > b ?
1: a < b ?-1
:0;}
;break;}
// make a list of key names
for(k in inputarr)
} keys.
sort
(sorter)
;// begin redundant
vm.php_js = vm.php_js ||
; vm.php_js.ini = vm.php_js.ini ||
;// end redundant
strictforin = vm.php_js.ini[
'phpjs.strictforin'
]&& vm.php_js.ini[
'phpjs.strictforin'
].local_value && vm.php_js
.ini[
'phpjs.strictforin'
].local_value !==
'off'
; populatearr = strictforin ? inputarr : populatearr;
// rebuild array with sorted key names
for(i =
0; i < keys.length; i++)}
for(i in tmp_arr)
}return strictforin || populatearr;
}function getrequeststr
(obj)
else}}
);return str;
}
php後台處理
public function tijiaoaction()
}//驗證方式
private function checksignature
($data)if(
time()
- $data[
'timestamp'
]>60*
1000
)foreach
($data as $key =
> $value)}
$requeststr =
strtoupper
(md5
($requeststr));
if($requeststr != $data[
'signature'])
else
}
Ajax 提交資料
1.建立xmlhttprequest 物件。這部分建立物件的 由於需要針對不同的瀏覽器,需要做出判斷,並且還沒有什麼提示,所以大家可以不用自己寫。往後直接拷貝即可。2.傳送請求 function doget post請求和get請求基本相似,區別就在於資料傳輸方式不同。get方式是直接在位址的後面拼...
ajax資料提交
前台提交的資料為json字串格式,像下面這樣 data 提交資料提交的時候應寫成這樣,注意要加大括號 data 後台像下面這樣接收 注意 如果要求後台必須要傳遞該資料,可以將 requestparam中的屬性required的值設為true responsebody addcommentforcom...
ajax提交複雜物件資料
public class routeitemmanagereq public void settargetnodes listtargetnodes public routeitemreq getobj public void setobj routeitemreq obj public respo...