したがって、jQuery Ajax docsによると、リクエストを送信するときにクエリ文字列の形式でデータをシリアル化しますが、設定processData:false
により、本文で実際のJSONを送信できます。残念ながら、これが発生していて、2番目のオブジェクトがサーバーに送信されているように見える場合は、最初に判断するのに苦労しています。私が知っているのは、サーバーが私が送信しているものを解析していないということだけです。
httpクライアントを使用してオブジェクトリテラルを投稿する{someKey:'someData'}
と、機能します。しかし、jQueryをdata: {someKey:'someData'}
で使用すると失敗します。残念ながら、Safariでリクエストを分析すると、メッセージのペイロードは[object Object]
...すばらしい...と表示され、Firefoxでは投稿が空白になります...
Java側で本文のコンテンツをログに記録すると、文字どおりに取得される[object Object]
ため、REAL JSONデータをどのように送信しますか?
jQueryから送信されたリクエストを使用して、リクエスト本文のJSONデータをシリアル化するJavaサービスの経験はありますか?
ところでここに完全な$ .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()
か?