调用Amazon Music API时遇Authorization header缺失错误求助
你的代码里有两个关键问题导致了这个错误:
请求头配置的字段名写错了:在fetch的参数对象中,请求头对应的属性是小写的
headers,你写成了大写的Headers。这个拼写错误会让浏览器完全忽略你定义的请求头配置,自然也就没有把Authorization头发送给API,所以会收到"Authorization header is missing"的报错。请求体的字段名错误:fetch中用来传递POST请求体的属性是
body,不是你用的data。这个错误虽然不是当前授权报错的直接原因,但会导致API接收不到你的搜索参数,后续也无法正常返回搜索结果。
修正后的代码如下:
const getAmazonMusicLinkFromSongInfo = async (amazonAuthToken, clientID) => { const searchQuery = JSON.stringify({ "searchFilters": [ { 'field': 'name', 'query': 'soja' } ] }) const searchParameters = { method: 'POST', // 修正:把Headers改成小写的headers headers: { 'x-api-key': clientID, 'Authorization': 'Bearer ' + amazonAuthToken, 'Content-Type': 'application/json;charset=utf-8' }, // 修正:把data改成body body: searchQuery } const amazonMusicFetchResponse = await fetch('https://api.music.amazon.dev/v1/search/tracks', searchParameters) const amazonMusicFetchResponseJson = await amazonMusicFetchResponse.json() console.log(amazonMusicFetchResponseJson) return amazonMusicFetchResponseJson; } getAmazonMusicLinkFromSongInfo(amazonAuthToken, clientID);
另外,你可以通过浏览器开发者工具的**网络(Network)**面板查看实际发送的请求,确认请求头是否正确携带,这是排查这类API请求问题的实用方法。
内容的提问来源于stack exchange,提问作者Nick Johnson
相关产品推荐
相关产品推荐

