我尝试访问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'因此不允许访问。
有谁知道我如何访问该服务?
答案 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流程。