EXCEPTION:响应状态:200 Ok for URL:

时间:2016-08-08 22:42:47

标签: angular cors instagram-api

我正在尝试使用instagram api来获取一些照片。 不幸的是,似乎有点难以应对its CORS问题。 所以我决定使用Jsonp.get来传递它。

这是我的服务:

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/

那么这个错误是什么? 我该如何解决?

点: 我正在使用网址:

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

它不需要身份验证,您可以在浏览器或邮递员中尝试。 我只对Get请求感兴趣,所以我不需要post等等。

2 个答案:

答案 0 :(得分:0)

jsonp的实施看起来很好。你遗漏的是在你的组件中将它们列为providers,类似于HTTP_PROVIDERS

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

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

然后你可以使用subscribe来消费observable。

答案 1 :(得分:0)

你可以尝试两种解决方案

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

    的GetResponse()的addHeader(&#34;访问控制允许来源&#34;&#34; *&#34);

    _jsonp ---&gt; HTTP

  2. 更改json字符串 例如:

    旧字符串:&#34; {id:1,名称:32}&#34;

    新字符串:&#34; __ ng_jsonp __.__ req1.finished( {id:1,name:32} &#34;