2017-01-02 3 views
0

Spotify 애플리케이션을 개발 중이며 토큰을 받고 싶습니다. 내가 Client Credentials Flow을 다음과 curl 모든 것을 사용하고클라이언트 자격 증명 흐름이 컬링에서는 작동하지만 브라우저에서는 작동하지 않습니다.

잘 작동 :

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); 
    } 
}); 

:

$ 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 
# } 

그리고 여기, 내가 같은 결과를 얻을려고 내 HTML 파일의 자바 스크립트 코드가있다 그러나 다음 오류가 발생합니다.

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.

내가 틀렸어?

Javascript를 사용하여 정적 HTML 파일에서 Spotify API를 사용하는 방법은 정말 있습니까?

+0

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. Spotify의 http://stackoverflow.com/users/540274/jos%C3%A9-m-p%C3%A9rez는 SO 답장 질문에 관한 것 같습니다. – sideshowbarker

+0

@sideshowbarker에게 감사하지만 어떤 서버 측 코드도 원하지 않습니다. –

+0

클라이언트 측에서 인증을 시도하는 경우 왜 암시 적 승인 대신 CORS로 인해 서버 측 응용 프로그램이 필요한 클라이언트 자격 증명을 사용하고 있습니까? 어쩌면 내가 그 질문을 잘못 이해 했는지도 모른다. –

답변

2

아무것도 브라우저가 CORS를 특별히 허가하지 않는 한 CORS를 허용하지 않습니다. 귀하의 경우에는 서버를 제어하지 않으므로 브라우저를 해킹 할 수 있습니다. Firefox 및 Chrome 용 플러그인으로 쉽게 완료되었습니다. Firefox 용 CORS Everywhere를 검색하십시오. Chrome에는 액세스 제어가 허용되는 * 또는 이와 비슷한 것이 있습니다.

나를 믿어 라. 나는 1 주일 동안 다른 REST API를 시도했다. Js 가져 오기 시도 등 플러그인을 사용하여 브라우저를 해킹해야합니다.

+0

그러나 Spotify는 개발자가이 경우 어떻게하기를 원합니까? 브라우저를 해킹하면 일시적인 해결책이됩니다. –

+0

특히 Spotify와 이야기 할 수 없습니다. 나는 결코 그것을 보지 못했다. API 문서를 게시하는지 확인하십시오. "CORS"검색. CORS입니다. –