/ / Post Ajax Aufruf mit JSON 400 zurück, während Ruhe Client funktioniert [Duplizieren] - Javascript, JSON, AJAX, Ruhe, Content-Typ

Post Ajax Anruf mit JSON 400 zurück, während Ruhe Client funktioniert [duplizieren] - Javascript, JSON, AJAX, Ruhe, Content-Typ

Ich benutze Jersey auf der Serverseite und meine Funktion verwendet

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response someFunction(SomeClass obj,@Context HttpServletRequest req){}

Aber wenn ich einen HTTP-Post-Aufruf mit Content-Type = "Application / Json" und Payload als {"name":"abc","age":"20"} von Advanced Rest Client, dann wird der Anruf ein erfolgreicher Anruf sein. Aber wenn ich einen Client erstelle, der einen Ajax-Aufruf macht,

 var person = {
name: "abc",
age:"20",
}
$.ajax({
url: "someUrl",
type: "post",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
},
data: person
});

Dann wird dieser Aufruf 400 schlechte Anfrage zurückgeben und es wird nicht in die Funktion auf der Serverseite gehen. Wenn wir Person Objekt in Form einer Zeichenfolge wie übergeben,

"{"name":"abc","age":"20"}"

Dann gibt der Ajax-Aufruf auch 200 zurück. Irgendein Grund warum es passiert?

Antworten:

0 für die Antwort № 1

Sie sollten Daten stringieren.

$.ajax({
url: "someUrl",
type: "post",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
},
data: JSON.stringify(person)
});