2017-02-24 2 views
0

Ich bin neu zu Spring-Boot-und Web-Entwicklung.Ich schreibe eine Anwendung, wo ich die einfache HTML-Formular Übermittlung vom Remote-Server behandeln muss.Umgang mit Cross-Domain-HTML-Formular POST-Einreichung mit SpringBoot

HTML-Formular enthält Benutzername, Passwort und Absenden-Taste. Ich stelle die URL meines Servers, der Controller hat, um die Anfrage in Aktion in Form-Tag zu behandeln.

-Controller

@RequestMapping(method = RequestMethod.POST, value = "/login") 
public String confirmation(HttpServletRequest request,Credentials cred) { 
    cred.setPassword(request.getParameter("username")); 
    cred.setUsername(request.getParameter("password")); 
    //doing dome Business Logic here 
    return "redirect"; 
} 

Ich habe sogar versucht consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE} in RequestMapping Zugabe, aber es hat nicht geholfen.

Ich verwendete POSTMAN Client, um die URL zu testen. Ich verwendete Content-Type as application/x-www-form-urlencoded und Körper als form-data. Ich erhalte die folgenden Fehler

org.springframework.web.util.NestedServletException: Request-Verarbeitung fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.ws.soap.SoapMessageCreationException: Konnte keine Nachricht von InputStream erstellen: Ungültiger Inhaltstyp: application/x-www-form-urlencoded. Ist dies eine Fehlermeldung anstelle einer SOAP-Antwort? Die verschachtelte Ausnahme ist com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Ungültiger Inhaltstyp: application/x-www-form-urlencoded. Ist dies eine Fehlermeldung anstelle einer SOAP-Antwort?

Meine Anwendung behandelt SOAP-Anforderung als auch mit MessageDispatcherServlet und ich bin mit DispatcherServlet REST Anrufe bearbeiten. Bitte führen Sie mich, ob ich spezifische content-type verwenden muss, um HTML-Formulardaten zu behandeln, oder muss ich irgendetwas in form submission tag in HTML angeben?

Antwort

0

Wenn Sie ein Formular posten, sendet der Browser eine HTTP-Anfrage, wobei der Kopf Content-Type auf application/x-www-form-urlencoded gesetzt ist.

Ein SOAP-Dienst erwarten die Content-Typeapplication/soap+xml, warum Sie die Stack-Trace erhalten.

Wenn Sie dies tun möchten, sollten Sie Ihr Formular an einen anderen Endpunkt senden, der den Post in eine SOAP-Anfrage verwandelt.

Mit Postboten den richtigen Inhalt-Typ