Ajax-POST-Daten im Request-Param
Mache ich eine POST-Anfrage wie folgt :
$.ajax({
url :"/clientCredentials.json",
type: "POST",
data: {
"clientEmail": email,
"clientName":clientName,
"orgName":orgName,
"logoURL":logoURL,
"redirectURI":redirectUri
},
success: function(response){
alert("sucess");
},
error:function(response){
alert("something went wrong");
}
});
Auf dem server, ich bin mit @RequestParams, um diese Daten abrufen.
@RequestParam String clientEmail, @RequestParam String clientName, @RequestParam String orgName, @RequestParam String logoURL, @RequestParam String redirectURI
Bin ich immer unterhalb vom server:
{"code":"400","errorMessage":"Required String parameter 'clientEmail' is not present"}
Wenn ich @RequestBody statt @RequestParam zu akzeptieren, diese Daten seine Arbeitsmethoden in Ordnung.
Meine Frage ist Wie kann ich diese Daten in Request-Parameter? Was mache ich falsch?
Ich habe versucht Jquery($.get(), $.post()) auch. nichts arbeiten.
Vielen Dank für jede Hilfe.
- Sie konnte es sehen in Ihren browser-Entwickler-tools. Auf chrome, dies ist unter der Registerkarte "Netzwerk". I cant help u über Frühjahr und @RequestParams aber jquery.
- Danke, @Loenix. Ich habe es. somethings falsch in meiner server-Konfiguration.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade kleine Projekt mit der neuesten version von spring boot-und-jquery-und es funktioniert gut, und basierend auf der Untersuchung habe ich, ich gefunden es sind 2-Faktor machen diese Ausgabe, eine von jquery und anderen von Spring MVC-Wandler:
1 - jquery-ajax-haben contentType-parameter
wenn diese geändert
application/json
oderapplication/xml
wird sich ändern die Weise, die es sendet Anfrage an den server, dann wird Frage zu server Parsen, aber es ist Standard-Wert senden Formular alskey=value
Koma getrennt und das ist OK mitFormHttpMessageConverter
"die fahren uns zum nächsten Punkt"2 - spring MVC nutzt
FormHttpMessageConverter
für"application/x-www-form-urlencoded"
Parsen oder konvertieren, dann können Sie@RequestParam
wenn dieser Konverter verändert, um andere Konverter wie:MappingJackson2HttpMessageConverter
für'application/json'
oder
Jaxb2CollectionHttpMessageConverter
für'application/xml'
so, erwartet er eine weitere Anfrage, und Sie können es mit
@RequestBody
So, Sie haben zu prüfen, Wunsch gehen von jquery ist es form -, json-oder xml-Daten mithilfe von Entwicklungs-tools in Ihrem browser, überprüfen Sie, ob Sie Frühling-code/Konfiguration, um sicher zu sein, dass diese Forderung umgesetzt von der
FormHttpMessageConverter
dieser Konverter könnte geändert werden, indem Sie die Parameter Ihres@RequestMapping
.Sie nicht verwenden $.Holen Sie sich mit payload(Daten), sondern können Sie $.post. bitte fügen Sie Attribut contentType in Ihrer Anfrage-parameter.