Json 响应为空 - Spotify API
Json Response Empty - Spotify API
search(term) {
//Spotify.getAccessToken() will RETURN accessToken from previous method.
const accessToken = Spotify.getAccessToken();
//Remember to RETURN the fetch
return fetch(`https://api.spotify.com/v1/search?type=track&q=${term}`, {
headers: {
'Authorization': `Bearer ${accessToken}`
}
})
.then(response => {
if (response.ok) {
console.log(response);
return response.json;
};
throw new Error('Request failed!');
}, networkError => {
console.log(networkError.message);
})
.then(jsonResponse => {
if (!jsonResponse.tracks) {
return [];
};
return jsonResponse.tracks.items.map(track => ({
id: track.id,
name: track.name,
artists: track.artists[0].name,
album: track.album.name,
uri: track.uri
}));
});
}
在这种方法中,当我发送 GET 请求时,控制台会记录初始响应,但是当我检查响应的实际内容时,它是空的并且不包含任何轨道。然而,当我输入结束点 url(在 fetch() 中指定)时,我可以在浏览器中看到结果。几个小时以来我一直在努力寻找解决方案,但我看不出我做错了什么。
谢谢。
在 promise 上链接一个 .catch 并控制错误,哦,顺便说一句,你应该 return
response.json()
就像那里的一个函数,而不仅仅是 response.json
search(term) {
//Spotify.getAccessToken() will RETURN accessToken from previous method.
const accessToken = Spotify.getAccessToken();
//Remember to RETURN the fetch
return fetch(`https://api.spotify.com/v1/search?type=track&q=${term}`, {
headers: {
'Authorization': `Bearer ${accessToken}`
}
})
.then(response => {
if (response.ok) {
console.log(response);
return response.json;
};
throw new Error('Request failed!');
}, networkError => {
console.log(networkError.message);
})
.then(jsonResponse => {
if (!jsonResponse.tracks) {
return [];
};
return jsonResponse.tracks.items.map(track => ({
id: track.id,
name: track.name,
artists: track.artists[0].name,
album: track.album.name,
uri: track.uri
}));
});
}
在这种方法中,当我发送 GET 请求时,控制台会记录初始响应,但是当我检查响应的实际内容时,它是空的并且不包含任何轨道。然而,当我输入结束点 url(在 fetch() 中指定)时,我可以在浏览器中看到结果。几个小时以来我一直在努力寻找解决方案,但我看不出我做错了什么。
谢谢。
在 promise 上链接一个 .catch 并控制错误,哦,顺便说一句,你应该 return
response.json()
就像那里的一个函数,而不仅仅是 response.json