скриншот с ошибкой
post, get, et c. методы http работают в браузере рабочего стола, но не в браузере android, в chrome для мобильных устройств он работает нормально
import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { retry, catchError, map } from 'rxjs/operators';
import { Observable, throwError, concat, of, BehaviorSubject, Subject, EMPTY } from 'rxjs';
export class HttpService {
private REST_API_SERVER: string = `${environment.baseUrl}`;
constructor(private http: HttpClient) {}
httpOptions = new HttpHeaders({
'Content-Type': 'application/json'
});
private _modalOpen: BehaviorSubject<any> = new BehaviorSubject<any>(null);
private modalOpenObservable = new Subject<any>();
modalErrorOpen$ = this.modalOpenObservable.asObservable();
handleError(error: HttpErrorResponse) {
let errorMessage = 'Unknown error!';
if (error.error instanceof ErrorEvent) {
// Client-side errors
errorMessage = `Error: ${error.error.message}`;
} else {
// Server-side errors
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
if ((error.status >= 400 && error.status <= 600) || error.status == 0) {
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
}
console.warn(errorMessage);
const result = concat(of(error.status), throwError(new Error('oops!')));
result.subscribe(x => console.log(x), e => console.log(e));
return result;
}
validateToken() {
this.headersWhithToken = new HttpHeaders({
'Content-Type': 'application/json',
Authorization: `${this.getToken()}`
});
}
public postRequest<T>(url: string, data: any, headers: any): Observable<any> {
if (headers === false) {
return this.http.post<T>(this.REST_API_SERVER + url, JSON.stringify(data), { headers: this.httpOptions }).pipe(
retry(3),
catchError(() => {
this.modalOpenObservable.next(true);
return EMPTY;
}),
map(object => object)
);
} else {
this.validateToken();
return this.http
.post<T>(this.REST_API_SERVER + url, JSON.stringify(data), { headers: this.headersWhithToken })
.pipe(
retry(3),
catchError(() => {
this.modalOpenObservable.next(true);
return EMPTY;
}),
map(object => object)
);
}
}
}
в компоненте выполняется вызов метода http, когда выполняется вызов в настольном браузере все идет хорошо, в браузере android отображается ошибка изображения ...
в компоненте:
sendValues(data) {
if (this._authService.token != '') {
const url = `${SERVICES.RADAR.CODE}`;
this.headers = true;
this._http.postRequest<OffersInterface[]>(url, data, this.headers).subscribe(dataOffers => {
this.idOffer = dataOffers.url;
this.thankYouPage();
});
} else {
const url = `${SERVICES.RADAR.ANONYMOUS}`;
this.headers = false;
this._http.postRequest<OffersInterface[]>(url, data, this.headers).subscribe(dataOffers => {
this.idOffer = dataOffers.url;
this.thankYouPage();
});
}
}