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