web-dev-qa-db-ja.com

フェッチ->約束->応答からデータを取得します

サーバーにデータを投稿しようとしていますが、応答データを取得する方法がわかりません。

私は次のコードを持っています:

fetch(url, {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    email: login,
    password: password,
  })
}).then(function(a){
  console.log(a);
})

Responseを出力し、body(ReadableByteStream)、bodyUsed(false)、ok(true)、status(200)などのデータが含まれていますが、取得したデータがどこにも見つかりません。 chrome開発者コンソール-ネットワークを開くと、そこに応答データが表示されます。

私は何が間違っているのですか?

フェッチ、プロミス、...がどのように機能するかについていくつかのリソースを探していましたが、うまく書かれたものは見つかりませんでした。

10
Zoli

.json().blob()など、フェッチ応答で呼び出すメソッドは他にもあります。これらのメソッドは、.then()を呼び出すことができるpromiseを返します。

fetch(url, {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        email: login,
        password: password,
    })
})
    .then(function (a) {
        return a.json(); // call the json method on the response to get JSON
    })
    .then(function (json) {
        console.log(json)
    })

フェッチの使用に関するいくつかのドキュメント 、およびフェッチ呼び出しでの 応答オブジェクトの動作 に関するその他のドキュメントを確認してください。

20
KevBot