Heim >Backend-Entwicklung >Golang >Wie behebt man Probleme mit Angular-HTTP-Headern und Go CORS?

Wie behebt man Probleme mit Angular-HTTP-Headern und Go CORS?

Barbara Streisand
Barbara StreisandOriginal
2024-12-27 02:08:10823Durchsuche

How to Troubleshoot Angular HTTP Headers and Go CORS Issues?

Fehlerbehebung bei Angular-HTTP-Headern und Go CORS

CORS (Cross-Origin Resource Sharing) bereitet oft Kopfschmerzen, wenn Angular-Apps mit Go-APIs verbunden werden. Für eine erfolgreiche Kommunikation zwischen beiden ist es von entscheidender Bedeutung, zu verstehen, wie man Autorisierungsheader in Angular hinzufügt und CORS in Go handhabt.

Angular-Autorisierungsheader

Um Autorisierungsheader in Angular hinzuzufügen, sollten Sie HTTP-Interceptors verwenden. Ein Beispiel für einen Auth Interceptor ist:

@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);
  }
}

Registrieren Sie den Interceptor im Modul Ihrer App:

providers: [
  {
    provide : HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi   : true,
  },
],

Go CORS Handling

Stellen Sie sicher, dass Ihr Go-Code dies zulässt Erforderliche Anforderungsheader aus der Angular-App:

headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

Wenn die Probleme weiterhin bestehen, konfigurieren Sie Ihre CORS-Einstellungen sorgfältig entsprechend die Anforderungsheader des Clients.

Beispiel für ein gelöstes Problem

Der folgende Angular-Code:

this.http.get<ProjectedBalance>(requestUrl, {headers: new HttpHeaders().set('Authorization', 'my-auth-token')})

Kombiniert mit dem folgenden Go-Code:

headersOk := handlers.AllowedHeaders([]string{"Authorization"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

Sollte die Kommunikation zwischen der Angular-App und der Go-API erfolgreich hergestellt werden.

Das obige ist der detaillierte Inhalt vonWie behebt man Probleme mit Angular-HTTP-Headern und Go CORS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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