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'
});
593   1  

1 ответ:

фактический запрос JSON будет выглядеть так:

data: '{"command":"on"}',

где вы отправляете фактическую строку JSON. Для более общего решения используйте JSON.stringify() для сериализации объекта в JSON, например:

data: JSON.stringify({ "command": "on" }),

для поддержки старых браузеров, которые не имеют

Comments

    Ничего не найдено.