我使用角2,離子2angular2 http.post到關閉服務器=>在Android返回錯誤但不是在IOS
我關閉我的應用程序發送其請求到服務器,以檢查如何管理離線模式。
我已根據import { Http, Headers, Response, RequestOptions, RequestMethod, Request } from '@angular/http'
爲我的項目製作了自定義HTTP服務。它包括一個 '功能sendRequest將':
public sendRequest = (data):Observable<Response> => {
// console.log("CustomHttpService->sendRequest() starts");
let headersToUse = new Headers();
headersToUse.append("Content-type",'application/x-www-form-urlencoded');
data = this.jsonToURLEncoded(data);
let options = { headers:headersToUse };
return this.http.post(this.url, data, options).map(
(res:Response)=>{
return res.json();
}
).catch(
this.handleErrorObservable
);
}
和 '功能handleErrorObservable':
private handleErrorObsevable (error:Response|any){
console.log("handleError error.message " + error.message);
console.log("handleError error " + error);
return Observable.throw(error.message || error);
}
在Android中它的工作原理,在一定的時間我在日誌中得到後:
handleError錯誤地址爲0的URL響應爲空:
但在IOS上,錯誤永遠不會到來,就像沒有時間設置一樣。有小費嗎?
它給出了和以前相同的結果。錯誤在Android中顯示,但不在IOS上顯示。 – nyluje
您是否嘗試在Safari瀏覽器中爲應用程序提供服務以查看http錯誤處理是否正常 –
我在SAFARI中進行了'ionic serve'測試,得到同樣的問題。它確實在控制檯上顯示一條警告消息,表明請求已超時,但該消息與我的代碼無關。它不會觸發'.catch(this.handleErrorObservable)'並且不會通過'console.log(...)'顯示錯誤。至少通過Apple瀏覽器的錯誤是一致的。 – nyluje