Я разрабатываю приложение Spotify и хочу получить токен.Поток клиентских полномочий работает со скручиванием, но не в браузере
Я следую Client Credentials Flow и используя curl
все работает отлично:
$ curl -H "Authorization: Basic YjU4Y...llYTQ=" \
-d grant_type=client_credentials \
https://accounts.spotify.com/api/token
# Response:
# {
# "access_token":"BQD3u...W4iJA",
# "token_type":"Bearer",
# "expires_in":3600
# }
И здесь есть код Javascript моего HTML файла, в котором я пытаюсь получить тот же результат:
var url = "https://accounts.spotify.com/api/token";
var authentication = "YjU4Y...llYTQ=";
var params = { grant_type: "client_credentials" };
var auth = "Basic " + authentication;
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
headers: {
'Authorization' : auth,
'Access-Control-Allow-Origin': '*'
},
data: params,
success: function(data) {
console.log('success', data);
}
});
Однако я получаю следующую ошибку:
XMLHttpRequest cannot load https://accounts.spotify.com/api/token . Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Что я делаю неправильно?
Есть ли способ использовать Spotify API из статического файла HTML с помощью Javascript?
http://stackoverflow.com/questions/33188989/allowing-cors-jquery-post-requests-to-spotify-api-on-express-js-server/33198424#33198424 представляется актуальным. И https://github.com/spotify/web-api-auth-examples. И http://stackoverflow.com/users/540274/jos%C3%A9-m-p%C3%A9rez от Spotify, похоже, вокруг SO, отвечая на вопросы. – sideshowbarker
Спасибо @sideshowbarker, но мне не нужен код на стороне сервера. –
Если вы пытаетесь выполнить аутентификацию со стороны клиента, почему вы используете учетные данные клиента, для чего требуется приложение на стороне сервера из-за CORS вместо неявного предоставления? Возможно, я неправильно понял этот вопрос. –