Access-Control-Allow-Origin拒绝spotify api

时间:2015-02-08 01:50:24

标签: javascript jquery rest spotify

我尝试访问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。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://www.bancadigital.com.br'因此不允许访问。

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

1 个答案:

答案 0 :(得分:11)

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

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

另一种方法是使用implicit grant flow,您可以在其中运行客户端的所有内容,但不会获得刷新令牌。

我建议您查看Spotify Web API Authorization Guide,查看the GitHub repo with auth examples并查看libraries and wrappers,以便更轻松地实施OAuth流程。