Solved: Angular Error TypeError: Failed to
execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1
code point
: TypeError: Failed to
execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1
code point. at http://localhost:4200/vendor.js:19785:49 at
|
Lösung:
über den Interceptor wird ein Token in jede URL Abfrage eingefügt. Dieser Token
enthält Sonderzeichen und dient normalerweise der Authorization (verschlüsselte
User Berechtigung)
Der Interceptor Code fügt bei Angular Beispielen immer einen
JWT Bearer Token ein, wenn es zu einen Authorization Fehler 401 kommt.
Dieser Code ist aus einem Internet Example… und somit
fehlerhaft
Problem: Interceptor Code
import { HttpEvent, HttpHandler, HttpInterceptor,
HttpRequest } from "@angular/common/http";
import { Injectable } from
"@angular/core";
import { Observable } from
"rxjs";
import { CookieService } from
'ngx-cookie-service' //*for
using cookies
@Injectable()
export class AuthenticationInterceptor implements
HttpInterceptor{
//</ init >
constructor(private cookieService: CookieService) { }
//</ init >
//* on any authorize-error 401, add
the token to the header
intercept(
req: HttpRequest<any>,
next: HttpHandler):
Observable<HttpEvent<any>> {
var token=this.cookieService.get("t");
if (token){
req=req.clone({
setHeaders:{Authorization: `Bearer ${token}` }, //*token
contains userid internal,encrypted
});
}
return next.handle(req);
}
}
|