我正在使用GET
调用cross-fetch
方法。我遇到的问题是我收到了代码为200的响应,但主体为空。当我进入浏览器的控制台并打开一个Network
标签时,我可以看到结果:
如您在图像中看到的,响应中有一个数据。负责访问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()
返回{}
答案 0 :(得分:0)
response
是Response
对象,它只是表示响应的容器对象。假设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)
})