Więc zgodnie z dokumentacją jQuery Ajax , serializuje dane w postaci ciągu zapytania podczas wysyłania żądań, ale ustawienie processData:false
powinno pozwolić mi na wysyłanie rzeczywistego JSON w treści. Niestety, mam trudności z ustaleniem najpierw, czy tak się dzieje, a po drugie, jak wygląda obiekt, który jest wysyłany na serwer. Wiem tylko, że serwer nie analizuje tego, co wysyłam.
Kiedy używasz klienta http do wysyłania literału obiektu {someKey:'someData'}
, to działa. Ale kiedy używasz jQuery z data: {someKey:'someData'}
, zawodzi. Niestety, kiedy analizuję żądanie w Safari, widzę, że ładunek wiadomości jest [object Object]
... świetny ... aw Firefoksie post jest pusty ...
Podczas rejestrowania treści ciała po stronie Java dosłownie dostaje się, [object Object]
więc jak można wysłać PRAWDZIWE dane JSON?
Czy ktoś miał doświadczenie z usługą Java serializującą dane JSON w treści żądania, z żądaniem wysłanym z jQuery?
BTW tutaj jest pełne żądanie $ .ajax:
$.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'
});
źródło
JSON.stringify()
?data
ciąg znaków, zamiast po prostu wysyłać go jako JSON?contentType: "application/json; charset=utf-8",
jak wspomniano w tym wątku: stackoverflow.com/questions/21201270/ ...