Heim > Backend-Entwicklung > Golang > Wie behebe ich CORS-Fehler beim Hinzufügen von Autorisierungsheadern in Angular?

Wie behebe ich CORS-Fehler beim Hinzufügen von Autorisierungsheadern in Angular?

Susan Sarandon
Freigeben: 2024-12-28 22:00:18
Original
782 Leute haben es durchsucht

How to Resolve CORS Errors When Adding Authorization Headers in Angular?

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
Nach dem Login kopieren

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);
  }
}
Nach dem Login kopieren

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,
    },
    ...
],

...
Nach dem Login kopieren

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"})
Nach dem Login kopieren

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!

Quelle:php.cn
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