[解決済み] フェッチする JSONデータをPOSTする
2022-03-18 15:56:19
質問
を使用してJSONオブジェクトをPOSTしようとしています。 フェッチ .
私が理解できるところでは、私はリクエストのボディに文字列化されたオブジェクトを添付する必要があります、例えば。
fetch("/echo/json/",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify({a: 1, b: 2})
})
.then(function(res){ console.log(res) })
.catch(function(res){ console.log(res) })
を使用する場合
jsfiddleのJSONエコー
私は、送信したオブジェクト (
{a: 1, b: 2}
chrome devtoolsはリクエストの一部としてJSONを表示しないので、送信されていないことを意味します。
解決するには?
ES2017で
async/await
サポート
には、このような方法があります。
POST
をJSONペイロードに変換します。
(async () => {
const rawResponse = await fetch('https://httpbin.org/post', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({a: 1, b: 'Textual content'})
});
const content = await rawResponse.json();
console.log(content);
})();
ES2017は使えない?vp_art さんの 約束事で答える
しかし、この質問は、以下の原因による問題を尋ねています。
ずっと前に修正されたクロームのバグです。
オリジナルの回答は以下の通りです。
chrome devtoolsはリクエストの一部としてJSONを表示しません。
これが本当の問題なのです , そしてそれは chrome devtoolsのバグ Chrome 46で修正されました。
そのコードは正常に動作します - JSONを正しくPOSTしていますが、見ることができないだけです。
<ブロッククオート送信したオブジェクトが戻ってくることを期待します。
でないため、うまくいきません。 JSfiddleのechoに適した形式です。 .
は 正しいコード は
var payload = {
a: 1,
b: 2
};
var data = new FormData();
data.append( "json", JSON.stringify( payload ) );
fetch("/echo/json/",
{
method: "POST",
body: data
})
.then(function(res){ return res.json(); })
.then(function(data){ alert( JSON.stringify( data ) ) })
JSONペイロードを受け入れるエンドポイント用。 元のコードは正しい
関連
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] JSONデータをファイルに書き込むにはどうしたらいいですか?
-
[解決済み] nodeやExpressを使用してJSONを返す正しい方法
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
要素ツリー制御によるvueTreeテーブル
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
jQueryのコピーオブジェクトの説明
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
[解決済み] テスト
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された