例外:响应状态为:200 好的 URL:

Posted

技术标签:

【中文标题】例外:响应状态为:200 好的 URL:【英文标题】:EXCEPTION: Response with status: 200 Ok for URL: 【发布时间】:2016-12-14 20:10:05 【问题描述】:

我正在尝试使用 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 等。

【问题讨论】:

该 URL 不支持 jsonp,因为您在服务器端进行操作,只需执行常规 http.get,它应该可以工作 @krisrak 当我使用 hhtp.get 时它会抱怨 cors。我对 cors 无能为力。我在吗? 它应该可以工作,我使用与 python 相同的 url 没有问题,当你使用 javascript 在客户端进行调用时,CORS 是一个问题,但在服务器端它不应该是一个问题跨度> 你得到答案了吗? @user5363938 这个问题你解决了吗?它也发生在我身上,我不知道该怎么办。 【参考方案1】:

jsonp 的实现看起来不错。您缺少的是将它们列为providers,类似于您的组件中的HTTP_PROVIDERS

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

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

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

【讨论】:

它是服务所以没有组件 然后尝试在main.ts文件中的bootstrap方法中添加它。 有帮助吗? @user5363938 很遗憾,不是。【参考方案2】:

你可以试试这两种解决方案

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

    getResponse().addHeader("Access-Control-Allow-Origin","*");

    _jsonp ---> http

    改变json字符串 示例:

    旧字符串:“id:1,name:32”

    新字符串:"__ng_jsonp__.__req1.finished(id:1,name:32)"

【讨论】:

以上是关于例外:响应状态为:200 好的 URL:的主要内容,如果未能解决你的问题,请参考以下文章

AWS CORS 问题:即使在获得 200 状态代码后,Ajax 响应也会出现错误

尽管响应为 200,但 Axios 状态为 449

HTTP协议响应篇

响应状态 200,但在 Angular 8 中仍然出现 CORS 错误 [重复]

HTTP响应状态码总结

AFNetworking:如何知道响应是不是使用缓存? 304 或 200