交叉提取-GET返回无内容的响应

时间:2018-08-29 17:12:14

标签: javascript reactjs api fetch

我正在使用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的回复,但没有正文。我在做什么错了?

更新

使用response.json()返回{}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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)
    })