Ungültiges Zeichen gefunden, die in der Anforderung Ziel im Frühjahr starten
Meine Anwendung gestartet wird mit java-jar mit der version 1.5.6.RELEASE von spring boot.
Der Inhalt meiner Anfrage hat die Zeichen "{".Wenn es ist, sended zu server die folgende Ausnahme ausgelöst:
java.lang.IllegalArgumentException: Ungültige Zeichen gefunden in der
Wunsch-Ziel. Die gültigen Zeichen sind definiert in RFC und RFC 7230
3986 an
org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)
bei
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)
bei
org.apache.coyote.AbstractProcessorLight.Prozess(AbstractProcessorLight.java:66)
bei
org.apache.coyote.AbstractProtocol$ConnectionHandler.Prozess(AbstractProtocol.java:868)
bei
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
bei
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
bei
java.util.gleichzeitige.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
bei
java.util.gleichzeitige.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
bei
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
bei java.lang.Thread.run(Thread.java:745)
Wo ist falsch?
Wie kann ich es beheben?
EDIT1:
Meine Ruhe ist so:
var jsonData = {
id: $("#hiddenId").val(),
permitNumber: $("#txtPermitNumber").val(),
permitToDate: $("#txtPermitToDate").val()
}
document.location = restUrl + "/print?reportParams= " + JSON.stringify(jsonData);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html, requestTargetAllow ist veraltet. Für mich, die anderen Lösungen hier vorgestellt hat nicht funktioniert entweder. Nach der Tomcat-Dokumentation habe ich einen Weg gefunden, um die Eigenschaft relaxedQueryChars statt:
starten Sie Ihre Spring-boot-Anwendung wie diese
oder encode-uri wie diese
Einfache Möglichkeit, fügen Sie einfach diesen code in deiner main-Klasse
System.setProperty("tomcat.util.http.parser.HttpParser.requestTargetAllow", "{}");
Für SpringBoot 1.5.17.RELEASE. Der folgende code funktionierte für mich.