Таким образом, в соответствии с документацией jQuery Ajax , при отправке запросов он сериализует данные в виде строки запроса, но настройка processData:false
должна позволять мне отправлять фактический JSON в теле. К сожалению, мне трудно сначала определить, происходит ли это, а во-вторых, как выглядит объект, который отправляется на сервер. Я знаю только то, что сервер не анализирует то, что я отправляю.
При использовании http-клиента для публикации литерала объекта {someKey:'someData'}
это работает. Но при использовании JQuery с data: {someKey:'someData'}
, это не удается. К сожалению, когда я анализирую запрос в Safari, он говорит, что полезная нагрузка сообщения [object Object]
... велика ... а в Firefox сообщение пустое ...
При регистрации содержимого тела на стороне Java оно буквально получает, [object Object]
так как можно отправить РЕАЛЬНЫЕ данные JSON ??
Кто-нибудь имел опыт работы с сервисом Java, сериализующим данные JSON в теле запроса, с запросом, отправленным из jQuery?
Кстати, вот полный запрос $ .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'
});
источник
JSON.stringify()
?data
строку, а не просто отправляет ее как JSON?contentType: "application/json; charset=utf-8",
как указано в этой теме: stackoverflow.com/questions/21201270/…