Итак, согласно jQuery Ajax docs , он сериализует данные в форме строки запроса при отправке запросов, но установка processData: false
должна позволить мне отправлять актуальный JSON в теле. К сожалению, мне трудно сначала определить, происходит ли это, а во-вторых, как выглядит объект, который отправляется на сервер. Все, что я знаю, это то, что сервер не разбирает то, что я отправляю.
При использовании http-клиента для публикации литерала объекта {someKey: 'someData'}
это работает. Но при использовании jQuery с данными : {someKey: 'someData'}
происходит сбой. К сожалению, когда я анализирую запрос в Safari, он говорит, что полезная нагрузка сообщения [object Object]
... отлично ... а в Firefox сообщение пустое ...
При регистрации содержимого тела на стороне Java он буквально получает [объект 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'
});