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
Freigeben: 2024-12-27 02:08:10
Original
803 Leute haben es durchsucht

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

Registrieren Sie den Interceptor im Modul Ihrer App:

providers: [
  {
    provide : HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi   : true,
  },
],
Nach dem Login kopieren

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

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

Kombiniert mit dem folgenden Go-Code:

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

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!

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