Portanto, de acordo com os documentos do jQuery Ajax , ele serializa dados na forma de uma string de consulta ao enviar solicitações, mas a configuração processData:false
deve permitir o envio de JSON real no corpo. Infelizmente, estou tendo dificuldade para determinar primeiro, se isso está acontecendo, e em segundo lugar como o objeto está sendo enviado ao servidor. Tudo o que sei é que o servidor não está analisando o que estou enviando.
Ao usar o cliente http para postar um objeto literal {someKey:'someData'}
, ele funciona. Mas ao usar o jQuery data: {someKey:'someData'}
, ele falha. Infelizmente, quando analiso a solicitação no Safari, ele diz que a carga útil da mensagem é [object Object]
... ótima ... e no Firefox a postagem está em branco ...
Ao registrar o conteúdo do corpo no lado Java, ele fica literalmente, [object Object]
então como enviar dados REAL JSON ??
Alguém já teve experiência com um serviço Java serializando dados JSON no corpo da solicitação, com a solicitação enviada pelo jQuery?
Entre aqui está a solicitação $ .ajax completa:
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
fonte
JSON.stringify()
?data
string em vez de apenas enviá-la como JSON?contentType: "application/json; charset=utf-8",
o mencionado neste tópico: stackoverflow.com/questions/21201270/…