Maison > développement back-end > Golang > Comment dépanner les en-têtes HTTP angulaires et les problèmes Go CORS ?

Comment dépanner les en-têtes HTTP angulaires et les problèmes Go CORS ?

Barbara Streisand
Libérer: 2024-12-27 02:08:10
original
861 Les gens l'ont consulté

How to Troubleshoot Angular HTTP Headers and Go CORS Issues?

Dépannage des en-têtes HTTP Angular et Go CORS

CORS (Cross-Origin Resource Sharing) est souvent une source de maux de tête lors de la connexion d'applications Angular aux API Go. Comprendre comment ajouter des en-têtes d'autorisation dans Angular et gérer CORS dans Go est crucial pour une communication réussie entre les deux.

En-têtes d'autorisation angulaires

Pour ajouter des en-têtes d'autorisation dans Angular, vous devez utiliser des intercepteurs Http. Un exemple d'intercepteur d'authentification est :

@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);
  }
}
Copier après la connexion

Enregistrez l'intercepteur dans le module de votre application :

providers: [
  {
    provide : HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi   : true,
  },
],
Copier après la connexion

Gestion Go CORS

Assurez-vous que votre code Go autorise le en-têtes de requête nécessaires depuis l'application Angular :

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

Si les problèmes persistent, configurez soigneusement vos paramètres CORS pour qu'ils correspondent les en-têtes de requête du client.

Exemple de problème résolu

Le code angulaire suivant :

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

Combiné avec le code Go suivant :

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

Doit réussir à établir la communication entre l'application Angular et l'API Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal