天天看點

JSP頁面以GET方式傳參伺服器報400

問題描述:

在同一項目中,有的時候需要從A頁面通過A頁面的路徑跳轉到B頁面,同時還需要将A頁面的參數帶到B頁面,

例如在A頁面中有一個跳轉連接配接:

localhost:8080/hello/B.jsp?username=小明&age=16

這個路徑在火狐、谷歌等浏覽器上能夠正常運作,但是如果放到ie上,會報一個400的錯誤,而且這個錯誤一般是等到項目正式釋出之後才出現(即上線之後新的域名通路這個位址時報400的錯誤),問題所在便是,當上例中的username參數值為漢字時,非ie浏覽器可以正确傳遞參數,但ie則預設需要将漢字進行URL編碼之後才能傳遞,

解決之道:

在頁面中設定最好使用JS提供的方法将參數進行URL編碼

var name=encodeURI(小明);

localhost:8080/hello/B.jsp?username=name&age=16IE浏覽器顯示的路徑為:http://localhost:8080/hello/B.jsp?username=%E5%B0%8F%E6%98%8E&age=16,這樣IE浏覽器便再不會報400的錯誤了。

注意:

如果再背景Java代碼中需要對參數進行URL解碼的話,需要使用javaAPI的方法對參數進行解碼URLDecoder.decode(username,”編碼格式名稱”);

繼續閱讀