java.lang.IllegalArgumentException: Invalid character found in the request target.
問題描述: URL中帶有特殊字符,如花括號{}、|,就會出現這個錯誤。
此時項目前端報錯400BadRequest(Chrome無異常、IE報錯)
問題原因:Tomcat在 7.0.73、8.0.39、 8.5.7 版本後,添加了對於http頭的驗證。也就是添加了某些規則去限制HTTP頭的規範性。我使用的是Tomcat8.5,所以可能在接收請求不會對符號進行轉義。Chrome不異常的原因或許是瀏覽器自身進行了轉義。
解決方案:
1、使用更低版本的TomCat
2、在TomCat目錄 conf/catalina.properties 中添加 tomcat.util.http.parser.HttpParser.requestTargetAllow=|{} \
然後重啓服務器即可