
Autorisierungsheader zur Angular-HTTP-Anfrage hinzufügen
Problemstellung:
Versuch, einem Angular-HTTP einen Autorisierungsheader hinzuzufügen Anfrage, aber es wird die Fehlermeldung „Auf der angeforderten Ressource ist kein ‚Access-Control-Allow-Origin‘-Header vorhanden“ angezeigt. Fehler.
Lösung:
In Angular-Anwendungen werden HTTP-Interceptoren für die Verwaltung von Authentifizierungsheadern empfohlen. Guards können diesen Ansatz für den Routenschutz ergänzen.
Authentifizierungs-Interceptors implementieren:
-
Erstellen Sie eine Interceptor-Datei: (z. B. auth.interceptor.ts)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http' ;
import { Injectable } from '@angular/core' ;
import { Observable } from 'rxjs' ;
import { AuthService } from './auth.service' ;
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (AuthService.isLoggedIn()) {
const token = AuthService.getToken();
req = req. clone ({
setHeaders: {
'Content-Type' : 'application/json' ,
'Accept' : 'application/json' ,
'Authorization' : `Bearer ${token}`,
},
});
}
return next.handle(req);
}
}
|
Nach dem Login kopieren
- Interceptor im App-Modul registrieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 | import { HTTP_INTERCEPTORS } from '@angular/common/http' ;
import { AuthInterceptor } from './auth/auth.interceptor' ;
...
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: AuthInterceptor,
multi: true,
},
...
],
...
|
Nach dem Login kopieren
Bezüglich Go HTTP-Anfrage:
Der Fehler deutet auf eine mögliche Nichtübereinstimmung zwischen den Anforderungsheadern und hin CORS-Konfiguration. Implementieren Sie die folgenden Schritte:
- Alle Header zulassen, indem Sie den Middleware-Parameter „AllowedHeaders“ auf * setzen:
1 | headersOk := handlers.AllowedHeaders([]string{ "*" })
|
Nach dem Login kopieren
- Konfigurieren Sie die CORS-Einstellungen iterativ so, dass sie mit den gesendeten Headern übereinstimmen durch den Angular-Client.
Das obige ist der detaillierte Inhalt vonWie füge ich Autorisierungsheader zu Angular-HTTP-Anfragen hinzu und löse CORS-Probleme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!