您好,登錄后才能下訂單哦!
Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors...java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are
先將異常信息貼出:
該問題是tomcat進行http request解析的時候報的錯,網上的解決辦法主要是修改Tomcat的server.xml,在<Connector port="8080"protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />的配置中增加maxHttpHeaderSize的配置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize="8192" />
如果調整了maxHttpHeaderSize還是解決不了,這時候需要設置前端頁面的數據格式,需要將method 的屬性設置為POST
但是這種方法對我的代碼并未奏效。
-----------------------------------------------------------------------------------------------------------------
經過分析,發現此問題與請求參數有關。當在瀏覽器中訪問時 URL中帶有特殊字符,如花括號冒號時,就會出現這個錯誤。例如:http://localhost:8080/index.do?{id:123},在有些情況下,即使沒有花括號,只要帶有"?+參數"就會報此異常
比如本文所遇該問題是在使用Layer.js的彈出窗體功能時出現的問題
(代碼中的*代碼隱藏的代碼,下同)
js代碼:
+ View Code
java代碼:
+ View Code
原先的思路是通過后臺轉接得到子頁面的url地址,然后使用layer.js組件實現將該url指向的頁面作為子頁面彈出。由于在url中有帶?的參數,所以出現了本文開頭的異常。于是,改變url形式,去掉后面的參數,將其通過其他方式進行父子界面的傳參。
因此又引出了另一個問題,如何使用layer.open()的時候進行父子界面傳參?
本文解決辦法:直接上代碼
父js:
+ View Code
子頁面js: 添加獲取父頁面數據的方法
1 2 3 4 | function getParentData(para){ cmdUuid=para.cmdUuid; projectId=para.projectId; } |
關鍵的是
+ View Code
“success”定義的回掉函數是在子頁面加載完成之后執行的,
+ View Code
+ View Code
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。