1. 程式人生 > >關於在Spring過濾器中修改request的引數值遇到的問題(一)

關於在Spring過濾器中修改request的引數值遇到的問題(一)

關於在Spring過濾器中修改request的引數值遇到的問題

  1. 背景
    專案上要對前臺傳輸到後臺的資料進行加密(二級等保什麼的),於是想到前臺使用JS進行RSA加密,後臺解密。於是在Spring中新增過濾器,來解密request中傳過來的引數值。

  2. 問題描述
    前臺登入表單資料使用JS加密後,用jquery方法$.post()提交,後臺登入成功,但是頁面不跳轉登入成功頁面。這時如果在位址列輸入登入成功後的URL連結,是可以訪問的(說明是真的認證登入成功了),debug控制檯看到:重新載入頁面以獲取原始碼 …….(一串登入成功後重定向的地址)

  3. 問題分析
    好吧,承認自己太嫩了,一個很平常的問題,卻被自己忽視了:form表單的提交,和ajax的提交是不一樣的。之前登入js是直接$(form).submit()。form表單提交是會重新整理頁面的,而ajax是什麼啊,人家叫做“非同步JavaScript和XML”,Asynchronous Javascript And XML,就尼瑪是為了不重新整理頁面也能動態載入資料的。你發起一個ajax請求結果伺服器響應一個重定向,這個cp不起來啊。

  4. 解決方案
    果斷,再次使用form表單提交,解決問題。這裡為了使用者體驗性,不把加密後的一大串字元顯示在頁面上,clone了一個表單物件,然後加密,提交都是用這個clone的表單物件。(注意這個表單物件一定要append到這個頁面上,否則還是不會重新整理當前頁面的)