[解決済み】jQueryがリクエストボディに有効なjsonを投稿する。
質問
ということで
jQuery Ajax ドキュメント
を設定すると、リクエストを送信するときにクエリ文字列の形式でデータをシリアライズします。
processData:false
は、ボディに実際のJSONを送信できるようにする必要があります。 残念ながら、この現象が起こっているのかどうか、そしてサーバーに送信されるオブジェクトがどのようなものなのか、判断するのに苦労しています。 私が知っているのは、サーバーが私が送っているものをパースしていないということだけです。
を使用する場合
httpクライアント
を投稿し、オブジェクトリテラル
{someKey:'someData'}
であれば、動作します。しかし、jQueryを
data: {someKey:'someData'}
と表示され、失敗します。 残念ながら、Safariでリクエストを分析すると、メッセージのペイロードが
[object Object]
...素晴らしい...そしてFirefoxでは投稿が空白になっています...。
Java側で本文のログを取ると、文字通り
[object Object]
本当のJSONデータを送るにはどうしたらいいのでしょうか?
jQueryから送信されたリクエストで、JavaサービスがリクエストボディでJSONデータをシリアライズした経験のある方はいらっしゃいますか?
ちなみに、$.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リクエストは、次のようになります。
data: '{"command":"on"}',
実際のJSON文字列を送信しているところ。 より一般的な解決策としては
JSON.stringify()
のように、オブジェクトをJSONに直列化することができます。
data: JSON.stringify({ "command": "on" }),
を持たない古いブラウザに対応するため。
JSON
オブジェクトを使用します。
json2.js
で追加されます。
現在起こっていることは、あなたが
processData: false
は、基本的にこのように送信されます。
({"command":"on"}).toString()
というのは
[object Object]
...あなたのリクエストに表示されているものです。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] フェッチする JSONデータをPOSTする
-
[解決済み] jQueryを使用して配列から特定の値を削除する方法
-
[解決済み] jQuery: outer html() [重複]。
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
echarts-all.js:1 Uncaught TypeError: nullのプロパティ'getAttribute'を読み取ることができません。
-
[解決済み] jquery - is not a function エラー
-
[解決済み] 選択オプション「selected」を値で設定する
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み] jQueryでチェックボックスの値を取得する
-
[解決済み] .on('click') と .click() の違いについて
-
[解決済み] jQueryを使用してテキストボックスの値を取得するには?
-
[解決済み] jQueryを使用してCSSのdisplay noneまたはblockプロパティを変更するにはどうすればよいですか?
-
[解決済み] jQueryを使用してspanに値を設定する方法
-
[解決済み] Electron: jQueryが定義されていない