Autorisierungsheader zu Angular-HTTP-Anfragen hinzufügen
Problem:
Eine Angular-Anwendung ist aufgetreten ein CORS-Fehler beim Hinzufügen eines „Authorization“-Headers zu einer HTTP-Anfrage. Der Fehler ist:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 403
Best Practices:
In Angular 4 und höher wird empfohlen, HTTP-Interceptors zu verwenden, um Authentifizierungsheader zu Anfragen und Guards zum Schutz hinzuzufügen Routen.
Winkelimplementierung:
Zu verwenden Erstellen Sie als AuthInterceptor eine TypeScript-Datei (z. B. auth.interceptor.ts):
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>> { req = req.clone({ setHeaders: { 'Content-Type' : 'application/json; charset=utf-8', 'Accept' : 'application/json', 'Authorization': `Bearer ${AuthService.getToken()}`, }, }); return next.handle(req); } }
Als nächstes registrieren Sie den Interceptor in app.module.ts:
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { AuthInterceptor } from '../auth/auth.interceptor'; ... imports: [ HttpClientModule, ... ], providers: [ { provide : HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi : true, }, ... ], ...
Go-Implementierung:
Stellen Sie auf der Go-Seite sicher, dass die CORS-Middleware das Notwendige zulässt Header anfordern:
headersOk := handlers.AllowedHeaders([]string{"*"}) originsOk := handlers.AllowedOrigins([]string{"*"}) methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
Wenn das Problem weiterhin besteht, konfigurieren Sie die CORS-Einstellungen sorgfältig so, dass sie mit den vom Client gesendeten Headern übereinstimmen.
Das obige ist der detaillierte Inhalt vonWie behebe ich CORS-Fehler beim Hinzufügen von Autorisierungsheadern in Angular?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!