交叉获取 - GET返回没有正文的响应

问题描述 投票:0回答:2

我使用GET调用cross-fetch方法。我遇到的问题是我收到代码为200的响应但是正文是空的。当我进入浏览器的控制台并打开Network选项卡时,我可以看到结果:

enter image description here

正如您在图像中看到的那样,响应中有一个数据。负责命中API的代码如下所示:

fetch(API_URL + 'load_packages', {
        method: 'GET',
        headers: {
            Accept: 'application/json',
        }
    }).then((response) => {
        console.log('LOAD PACKAGES RESPONSE: ' + JSON.stringify(response))
        proceedLoadResponse(response)
    })

该调用有效,因为我收到状态代码为200的响应,但没有正文。我究竟做错了什么?

UPDATE

使用response.json()返回{}

javascript reactjs api fetch
2个回答
0
投票

根据获取文档,您必须使用response.json()以json形式隐藏响应以获取实际身体。

fetch(API_URL + 'load_packages', {
        method: 'GET',
        headers: {
            Accept: 'application/json',
        }
    }).then(function(response) {
        return response.json();
    })
    .then((response) => {
        console.log('LOAD PACKAGES RESPONSE: ' + JSON.stringify(response))
        proceedLoadResponse(response)
    })

0
投票

responseResponse对象,它只是一个表示响应的容器对象。假设cross-fetch只是本机fetch的独立于平台的实现,要从响应中检索JSON,您需要使用response.json()方法。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.