tomcat進行http request解析報錯

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 arejavascript

先將異常信息貼出:html

該問題是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" />
java

若是調整了maxHttpHeaderSize仍是解決不了,這時候須要設置前端頁面的數據格式,須要將method 的屬性設置爲POST瀏覽器

可是這種方法對個人代碼並未奏效。tomcat

-----------------------------------------------------------------------------------------------------------------ide

通過分析,發現此問題與請求參數有關。當在瀏覽器中訪問時 URL中帶有特殊字符,如花括號冒號時,就會出現這個錯誤。例如:http://localhost:8080/index.do?{id:123},在有些狀況下,即便沒有花括號,只要帶有"?+參數"就會報此異常函數

好比本文所遇該問題是在使用Layer.js的彈出窗體功能時出現的問題ui

(代碼中的*代碼隱藏的代碼,下同)url

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

相關文章
相關標籤/搜索