2016-08-08 14 views
2

私はいくつかの写真を取得するためにinstagram APIを使用しようとしています。 残念ながら、its CORSの問題に対処するのは少し難しいようです。 私はJsonp.getを使用してそれを渡すことを心掛けました。ここで例外:状況による応答:200 OK URL:

は私のサービスです。

import {Http,Headers} from '@angular/http'; 
import {Observable} from 'rxjs/Observable'; 
import 'rxjs/add/operator/map'; 
import {Injectable} from '@angular/core'; 
import {Gallery} from './gallery'; 
import {Jsonp} from '@angular/http'; 

@Injectable() 
export class InstagramService{ 

    constructor(private _http:Http,private _jsonp: Jsonp){   

    } 

    getGallery(username: string) : Observable<Gallery> { 

     return this._jsonp.get("https://www.instagram.com/justinbieber/media/").map(res => res.json());                    
    } 
} 

問題は、私は自分のコードを実行すると、私はエラーで直面する、次のとおりです。

EXCEPTION: Response with status: 200 Ok for URL: https://www.instagram.com/justinbieber/media/ 

だから、このエラーは何ですか? どうすれば修正できますか?

ポイント:私は、URLを使用しています :

https://www.instagram.com/justinbieber/media/ 

それが認証を必要としない、あなたのブラウザや郵便配達でそれを試すことができます。 と私はGet要求にのみ興味を持っていますので、私はjsonpの実装が正常に見えるpostかなど

+0

JSONPがサポートされていませんそのURLのために、サーバー側でやっているので、通常のhttp.getを実行してください。 – krisrak

+0

@krisrakを使用してください。hhtp.getを使用するとcorsに不満があります。私はコルズとは何もできません。そこに? – user5363938

+0

それはうまくいくはずです、私は問題なしでPythonと同じURLを使用しています、CORSはあなたがJavaScript側を使ってクライアントサイドで呼び出しているときに問題ですが、サーバ側では問題ではないはずです – krisrak

答えて

0

を必要としません。何あなたが欠落していることはあなたのコンポーネントでこのようHTTP_PROVIDERSに似providersとしてそれらを一覧表示されます。

import {JSONP_PROVIDERS, Jsonp} from '@angular/http'; 

@Component({ 
    //... 
    providers : [JSONP_PROVIDERS] 
}); 

、あなたはsubscribeを使用して観察可能な消費することができます。

+0

それはサービスなので、コンポーネントがありません – user5363938

+0

それを 'main.ts'ファイルの' bootstrap'メソッドに追加してみてください。 – candidJ

+0

それは助けましたか? @ user5363938 – candidJ

0

次の2つのソリューション

  1. https://www.instagram.com/justinbieber/media/

    てgetResponse()のaddHeader( "アクセス制御 - 許可 - 起源"、 "*")を試すことができます。

    _jsonp ---> HTTP

  2. 変化JSONストリング 例:

    古い文字列 "{ID:1、名前:32}"

    新しい文字列」__ng_jsonp__ .__ req1.finished( {ID:1、名前:32} "

関連する問題