2016-08-08 1 views
2

사진을 얻기 위해 인스 타 그램 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/ 

그것은 인증을 필요로하지 않는다, 당신은 당신의 브라우저 또는 우편 배달부에서 그것을 시도 할 수 있습니다. 그리고 내가 그래서 난 post 또는 필요하지 않습니다 Get 요청에만 관심 등

+0

JSONP가 지원되지 해당 URL에 대해 서버 측에서 수행 중이므로 일반 http.get을 실행하면 – krisrak

+0

@ krisrak을 사용할 수 있습니다. hhtp.get을 사용하면 cors가 불평합니다. 내가 코르와 할 수있는 건 아무것도 없다. 거기 있니? – user5363938

+0

그것이 작동해야합니다, 나는 문제없이 파이썬과 동일한 URL을 사용했습니다, CORS는 자바 스크립트를 사용하여 클라이언트 쪽에서 전화를 걸 때 문제가되지만 서버 쪽에서는 문제가되어서는 안됩니다. – krisrak

답변

0

jsonp의 구현이 잘 보인다. 무엇을 당신이없는 것은 구성 요소에서이 같은 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

당신은 두 가지 솔루션

    을 시도 할 수 있습니다
  1. https://www.instagram.com/justinbieber/media/

    하는 GetResponse() addHeader ("액세스 제어 - 허용 - 기원", "*.");

    _jsonp ---> HTTP

  2. 변경 JSON 문자열 예 :

    된 문자열 : "{ID : 1, 이름 : 32}"

    새 문자열 : "__ng_jsonp__ .__ req1.finished ( {ID : 1 명 : 32} )가 "