typescript - Eroare http.post în Angular 2 pe Firefox și IE
Codul următor funcționează fără probleme în Chrome, dar în Firefox și IE 11 apare o eroare care nu permite trimiterea cererii POST. Deci serverul nu primește nicio cerere, eroarea fiind în codul cererii. Eroarea pe care o primesc nu conține informații utile.
Back-endul are CORS activat și funcționează corect cu Chrome.
În IE 11 eroarea este:
XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3.Metoda handleError returnează în consolă
Response with status: 0 for URL: nullAceasta este o imagine captura de ecran a erorii IE11
În Firefox eroarea este:
Response { _body=Event error, status=0, ok=false, more...}login(username, password): Observable<boolean> {
let reqScopes: string[] = ["login.login", "invoices.read"];
let options = new RequestOptions({withCredentials:true });
return this.http.post(AppSettings.ApiEndpoint+'/login'+AppSettings.xdebug, JSON.stringify({ username: username, password: password,scopes:reqScopes}),options)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('webinfoUser', JSON.stringify({ username: username, token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
})
.catch(this.handleError);
//.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
private handleError(error: any) {
console.log( error);
return Observable.throw( error.status );
}