jQuery проводка допустимого json в теле запроса
и по jQuery Ajax docs, он сериализует данные в виде строки запроса при отправке запросов, а параметр processData:false должен позволить мне отправить фактический JSON в теле. К сожалению, мне трудно определить, во-первых, если это происходит, а во-вторых, что объект выглядит так, что отправляется на сервер. Все, что я знаю, это то, что сервер не анализирует то, что я посылаю.
при использовании http client для размещения объекта литерал {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'
});
1 ответ:
фактический запрос JSON будет выглядеть так:
data: '{"command":"on"}',где вы отправляете фактическую строку JSON. Для более общего решения используйте
JSON.stringify()для сериализации объекта в JSON, например:data: JSON.stringify({ "command": "on" }),для поддержки старых браузеров, которые не имеют
Comments