Heim > Backend-Entwicklung > Golang > Wie füge ich Autorisierungsheader zu Angular-HTTP-Anfragen hinzu und löse CORS-Probleme?

Wie füge ich Autorisierungsheader zu Angular-HTTP-Anfragen hinzu und löse CORS-Probleme?

Linda Hamilton
Freigeben: 2024-12-14 19:47:14
Original
484 Leute haben es durchsucht

How to Add Authorization Headers to Angular HTTP Requests and Resolve CORS Issues?

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:

  1. Erstellen Sie eine Interceptor-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>> {
    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
  1. Interceptor im App-Modul registrieren:
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:

  1. Alle Header zulassen, indem Sie den Middleware-Parameter „AllowedHeaders“ auf * setzen:
headersOk := handlers.AllowedHeaders([]string{"*"})
Nach dem Login kopieren
  1. 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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage