Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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 获得;请求失败,状态代码为401“;尝试使用Spotify的API在Spotify中创建播放列表时出错_Javascript_React Native_Axios_Spotify - Fatal编程技术网

Javascript 获得;请求失败,状态代码为401“;尝试使用Spotify的API在Spotify中创建播放列表时出错

Javascript 获得;请求失败,状态代码为401“;尝试使用Spotify的API在Spotify中创建播放列表时出错,javascript,react-native,axios,spotify,Javascript,React Native,Axios,Spotify,以下是我正在使用的代码: await axios.post(arg.url, { headers: { "Content-Type": "application/json", Authorization: `Bearer ${SPYauthToken}` }, params: {name: "playlist"}, }

以下是我正在使用的代码:

    await axios.post(arg.url,
        {
            headers: {
                "Content-Type": "application/json",
                Authorization: `Bearer ${SPYauthToken}`
            },
            params: {name: "playlist"},

        }
    )
我之前已经提供了对所有必要作用域的访问,并获得了相应的身份验证令牌,但是当我尝试使用我提供的代码创建播放列表时,我收到一个错误,显示“请求失败,状态代码401”

当我尝试在Spotify自己的API站点中创建播放列表时,它也不起作用:使用他们自己的示例单击“try it”后,什么都没有发生,也没有为我创建播放列表

我是做错了什么,还是Spotify必须解决的问题

谢谢

    await axios.post(arg.url,
        {
            headers: {
                "Content-Type": "application/json",
                "Authorization": `Bearer ${SPYauthToken}`
            },
            params: {name: "playlist"},

        }
    )

您没有在授权周围使用引号

我使用fetch修复了它:

    const data = { name: 'playlist' };

    fetch(arg.url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          "Authorization": `Bearer ${SPYauthToken}`
        },
        body: JSON.stringify(data),
      })
      .then((response) => response.json())
工作完美无瑕。Axios似乎无法使用POST,至少不像预期的那样,所以我可能会停止使用它


感谢所有回答的人。

没有尝试过,但你可以做以下事情

    // request data object
    const data = {
        name: "playlist"
    };

    // set the headers
    const config = {
       headers: {
            "Content-Type": "application/json",
            Authorization: `Bearer ${SPYauthToken}`
        }
    };

await axios.post(arg.url, data, config);
// maybe you need to stringify data so
await axios.post(arg.url, JSON.stringify(data), config);

您缺少授权标题上的引号,不管怎样,您是否尝试过curl是否有效?您好,使用curl确实有效。所以这肯定是我这边的事。不管怎样,添加引号并不能解决这个问题。我用fetch解决了它。由于某些原因,Axios拒绝使用POST请求请看一下我的答案,也许它解决了问题我从未在名称中不使用破折号时使用过它们,而且它已经起作用了。无论如何,添加它们并不能解决这个问题。除了使用fetch(不需要字符串化)之外,这个解决方案也可以工作。谢谢!