1
如何处理jsonp请求的超时?我对jsonp.get()方法返回的观察值有10秒超时,但即使超时已到,请求仍保留在浏览器中。经过1-2分钟的超时我收到控制台此错误:如何避免jsonp请求发生超时错误?
GET https://myserver/?url=asdf&callback=ng_jsonp.__req0.finished 网:: ERR_CONNECTION_TIMED_OUT browser_jsonp.js:64
在我的组件要打JSONP请求和订阅它是这样的:
this.service.jsonp(url).subscribe(
(response) => { this.handleResponse(response); },
(err) => { this.handleError(err); }
);
这是我的服务JSONP方法:
jsonp(url: string): Observable<any> {
let params = new URLSearchParams();
params.set('url', url);
params.set('callback', 'JSONP_CALLBACK');
return this.jsonp.get('https://myserver', {search: params})
.timeout(10000)
.catch((err: Response) => Observable.throw(err))
.map((response: Response) => response.json());
}
谢谢你的回答。所以基本上,你是说我无法捕捉由jsonp请求引起的错误,因此也无法通过脚本标记? – RichieRock
为什么你需要抓住它? Chrome只是将资源加载错误打印到控制台,以方便您使用。 – kemsky