从fetch - > promise - > response获取数据

Zol*_*oli 9 javascript ecmascript-6 es6-promise fetch-api

我试图将一些数据发布到服务器,但我不知道如何取回响应数据.

我有以下代码:

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);
})
Run Code Online (Sandbox Code Playgroud)

它打印出一个Response包含body(ReadableByteStream),bodyUsed(false),ok(true),status(200)等数据的数据,但是我找不到我回来的数据,无处可去.当我打开chrome开发者控制台 - 网络时,我看到那里的响应数据.

我究竟做错了什么?

我一直在寻找一些资源如何获取,承诺,...工作,但我找不到任何写得好.

Kev*_*Bot 19

您可以在获取响应上调用其他方法,例如.json(),或.blob().这些方法返回您可以调用的承诺.then().

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)
    })
Run Code Online (Sandbox Code Playgroud)

查看有关使用fetch的一些文档,以及有关响应对象如何在fetch调用中工作的一些其他文档.