访问控制允许来源被拒绝 Spotify api

IT技术 javascript jquery rest spotify
2021-02-09 16:21:57

我正在尝试像这样访问 Spotify API 令牌:

$.ajax({
  url: "https://accounts.spotify.com/api/token",
  type: 'POST',
  contentType: "application/json; charset=\"utf-8\"",
  crossDomain: true,
  data: {
    grant_type: "authorization_code",
    code: code,
    redirect_uri: "http://www.bancadigital.com.br/spotifyteste/callback.html"
  },
  processData: false,
  dataType: "json",
  headers: {
    Authorization: "Basic " + utf8_to_b64(key)
  },
  success: function( response ) {
    alert(response.access_token);
  },
});

但服务返回以下错误:

XMLHttpRequest 无法加载https://accounts.spotify.com/api/token请求的资源上不存在“Access-Control-Allow-Origin”标头。Origin ' http://www.bancadigital.com.br ' 因此不允许访问。

有谁知道我如何访问该服务?

1个回答

https://accounts.spotify.com/api/token需要在服务器端发出请求,而不是作为 AJAX 请求。

这样key,包含应用程序凭据的 就不会公开。此外,Spotify 服务器将能够将请求redirect_uri与访问令牌一起重定向到

另一种方法是使用隐式授权流程,您可以在其中运行客户端的所有内容,但不会获得刷新令牌。

我建议您查看Spotify Web API 授权指南,检查带有身份验证示例的 GitHub 存储库,并查看可以更轻松地实现 OAuth 流程库和包装器