DeezerのAPIにアクセスするアプリを構築しています。 JSONP使用のギュンターの先端を使用してDeezer API in Angular2 app
、私はこのようなDeezerのAPIを使用している場合:
@Injectable()
export class DeezerService{
constructor(private _jsonp:Jsonp){
}
dzSearch(){
console.log('Testing dzSearch() init');
return this._jsonp.request('https://api.deezer.com/search/artist/?q=deftones&output=jsonp', {method:'Get'})
.subscribe((res) => {
console.log(res);
});
}
}
私はAPI OK 200応答を得るが、私は言ってエラーが出て、それはまだ動作しません。
- EXCEPTION:ステータス応答:URLの200 OK: https://api.deezer.com/search/artist/?q=deftones&output=json
- キャッチされないレスポンス{_body: "JSONPスクリプトを注入し コールバックを呼び出しませんでした。"、状況:200、[OK]:真、STAT usText: "OK"、ヘッダ: ヘッダ...}
オリジナル:自分のJavascript SDKを使用するには、私が使用して、それへのアクセスを獲得しました:
declare var DZ : any;
@Injectable()
export class DeezerService{
constructor(private _http:Http){
new DZ.init({
appId : 'APPID',
channelUrl : 'http://localhost:4200/src/channel.html'
});
}
dzSearch(){
console.log('Testing dzSearch() init');
DZ.api('/album/12720342/tracks', function(response){
console.log(response.data);
});
}
}
これは動作しますが、これではありませんどのように変数を渡すことができないので、私はそれを使いたいのですか? Angular2のEduonixコースのように、REST APIをサービスとして使用したいと考えています。関数内のfirebaseのdbへの投稿をテストしていませんが、これもパフォーマンスには影響しませんが、うまくいくと思います。
私は見落としている何か他にありますか?
うん、あなたはサーバーの構成を変更する必要があります;-)彼らのスクリプトは、おそらく制限を回避するためにJSONPを使用しますが、JSONPは非常にいくつかの制限があります。 –
JSONPの実装方法を教えてください。 –
https://angular.io/docs/ts/latest/api/http/index/Jsonp-class.html 'HttpModule'と同様に動作します。いくつかの質問があり、その例についての答えがあります。 –