Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript POST请求作为GET传递时出现问题_Javascript_Fetch Api - Fatal编程技术网

Javascript POST请求作为GET传递时出现问题

Javascript POST请求作为GET传递时出现问题,javascript,fetch-api,Javascript,Fetch Api,我将插入整个模块,以防您需要看到代码的其他方面。所讨论的调用是addTracks方法。该项目允许用户搜索spotify库,创建歌曲播放列表,然后将播放列表添加到其帐户中。一切正常,除了保存到帐户的曲目外,我在API上得到了一个401错误,但Chrome和FireFox也将其标记为get调用,而不是POST。该错误是一个身份验证错误,但我应该被正确授权,授权唯一奇怪的事情是范围,它在getAccessToken()中的重定向中得到处理。我错过了什么?如果您需要: let-accessToken;

我将插入整个模块,以防您需要看到代码的其他方面。所讨论的调用是addTracks方法。该项目允许用户搜索spotify库,创建歌曲播放列表,然后将播放列表添加到其帐户中。一切正常,除了保存到帐户的曲目外,我在API上得到了一个401错误,但Chrome和FireFox也将其标记为get调用,而不是POST。该错误是一个身份验证错误,但我应该被正确授权,授权唯一奇怪的事情是范围,它在getAccessToken()中的重定向中得到处理。我错过了什么?如果您需要:

let-accessToken;
让呼气素;
const clientId='86f8f621d81a4ce18bd21da9fd2da2b1';
常量重定向URI=http://localhost:3000/';
常数Spotify={
getAccessToken(){
if(accessToken){
返回accessToken;
}else if(window.location.href.match(/access_-token=([^&]*)/)!=null){
accessToken=window.location.href.match(/access_-token=([^&]*)/)[1];
expiresIn=window.location.href.match(/expires_in=([^&]*)/)[1];
setTimeout(()=>accessToken='',expiresIn*1000);
pushState('accesstoken',null',/');
}否则{
window.location=`https://accounts.spotify.com/authorize?client_id=${clientId}&response_type=token&scope=playlist modify public&redirect_uri=${redirectURI}`;
}
},
异步搜索(术语){
if(accessToken==未定义){
这个.getAccessToken();
}
试一试{
let response=等待获取(`https://api.spotify.com/v1/search?type=track&q=${term}`{
方法:“GET”,
标题:{
授权:`Bearer${accessToken}`
}
});
if(response.ok){
让jsonResponse=wait response.json();
让tracks=jsonResponse.tracks.items.map(track=>({
id:track.id,
名称:track.name,
艺术家:track.artists[0]。姓名,
唱片集:track.album.name,
uri:track.uri
}));
返回轨道;
}
}捕获(错误){
console.log(错误);
}
},
异步保存播放列表(名称、TrackURI){
if(accessToken==未定义){
这个.getAccessToken();
}
if(name==未定义| | trackURIs===未定义){
返回;
}否则{
让userId=wait this.findUserId();
让播放ID;
取回(`https://api.spotify.com/v1/users/${userId}/playlists`{
方法:“POST”,
标题:{
授权:`Bearer${accessToken}`,
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
姓名:姓名
})
})。然后(响应=>{
返回response.json()
})。然后(播放列表=>{
playlist id=playlist.id;
this.addTracks(playlid、trackURIs、userId);
});
}
},
addTracks(播放ID、TrackURI、用户ID){
console.log(trackURIs);
取回(`https://api.spotify.com/v1/users/${userId}/playlists/${playlistID}/tracks`){
方法:“POST”,
标题:{
授权:`Bearer${accessToken}`,
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
URI:trackURI
})
}
},
findUserId(){
if(accessToken==未定义){
这个.getAccessToken();
}
让用户识别;
回传(`https://api.spotify.com/v1/me`, {
标题:{
授权:`Bearer${accessToken}`
}
})。然后(响应=>{
返回response.json()
})。然后(jsonResponse=>{
userId=jsonResponse.id;
返回用户标识;
});
}
};

导出默认的Spotify我是初学者,但您可能应该检查addTracks()中fetch()方法中的括号


我是初学者,但您可能应该检查addTracks()中fetch()方法中的括号


您需要显示如何调用
addTracks
,因为这可能会有所不同。在addTracks方法中,在fetch方法调用的url后面有一个“'),因此它不再传递第二个参数,您可以在其中指定它是POST和身份验证数据。您需要显示如何调用
addTracks
,在addTracks方法中,在fetch方法调用的url后面有一个“'),因此它不再传递第二个参数,您可以在其中指定它是POST和身份验证数据。
addTracks(playlistID, trackURIs, userId) {
    console.log(trackURIs);
    fetch(`https://api.spotify.com/v1/users/${userId}/playlists/${playlistID}/tracks`->)<-, {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "Content-Type": 'application/json'
      },
      body: JSON.stringify({
        uris: trackURIs
      })
    }
  },
addTracks(playlistID, trackURIs, userId) {
        console.log(trackURIs);
        fetch(`https://api.spotify.com/v1/users/${userId}/playlists/${playlistID}/tracks`, {
          method: 'POST',
          headers: {
            Authorization: `Bearer ${accessToken}`,
            "Content-Type": 'application/json'
          },
          body: JSON.stringify({
            uris: trackURIs
          })
        })
      },