/ / Chamada pós-Ajax com json retornando 400, enquanto o cliente rest funciona bem [duplicado] - javascript, json, ajax, rest, tipo de conteúdo

Post chamada Ajax com json retornando 400 enquanto o cliente de descanso funciona bem [duplicado] - javascript, json, ajax, resto, tipo de conteúdo

Estou usando a camisa no lado do servidor e minha função usa

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

Mas quando eu faço uma chamada http post com content-type = "application / json" e carga como {"name":"abc","age":"20"} do Advanced Rest Client, a chamada será bem-sucedida. Mas se eu criar um cliente que faça uma chamada ajax como,

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

Então, essa chamada retornará 400 solicitações incorretas e não estará dentro da função no lado do servidor. Se passarmos o objeto person na forma de uma string como,

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

Em seguida, a chamada ajax também retorna 200. Alguma razão para que isso esteja acontecendo?

Respostas:

0 para resposta № 1

Você deve especificar os dados.

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