Donc, selon la documentation jQuery Ajax , il sérialise les données sous la forme d'une chaîne de requête lors de l'envoi de requêtes, mais le réglage processData:false
devrait me permettre d'envoyer du JSON réel dans le corps. Malheureusement, j'ai du mal à déterminer d'abord si cela se produit et ensuite à quoi ressemble l'objet qui est envoyé au serveur. Tout ce que je sais, c'est que le serveur n'analyse pas ce que j'envoie.
Lorsque vous utilisez le client http pour publier un objet littéral {someKey:'someData'}
, cela fonctionne. Mais lors de l'utilisation de jQuery avec data: {someKey:'someData'}
, cela échoue. Malheureusement, lorsque j'analyse la demande dans Safari, cela dit que la charge utile du message est [object Object]
... géniale ... et dans Firefox, le message est vide ...
Lors de la journalisation du contenu du corps du côté Java, il obtient littéralement [object Object]
alors comment envoyer de VRAIES données JSON?
Quelqu'un a-t-il eu de l'expérience avec un service Java sérialisant des données JSON dans le corps de la requête, avec la requête envoyée depuis jQuery?
BTW voici la requête $ .ajax complète:
$.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'
});
JSON.stringify()
?data
dans une chaîne, au lieu de simplement l'envoyer au format JSON?contentType: "application/json; charset=utf-8",
comme mentionné dans ce fil: stackoverflow.com/questions/21201270/…