📧 Reste informé(e) !

Reçois les derniers articles et conseils EasyAngularKit directement dans ta boîte mail.

S'inscrire gratuitement

~1 min de lecture

Angular : ajouter dynamiquement l'en-tête Accept-Language avec un HttpInterceptor

Pourquoi un interceptor ?

Centraliser certaines logiques (authentification, logs, headers, erreurs) dans un HttpInterceptor permet :

  • Une meilleure séparation des responsabilités
  • Moins de duplication dans les services
  • Une architecture plus testable et évolutive

Le besoin : transmettre la langue de l'utilisateur au backend

Imagine une app Angular multilingue. Le backend a besoin de connaître la langue de l’utilisateur pour retourner du contenu localisé (traductions, formats, etc.). La convention est d'utiliser l’en-tête Accept-Language.

Étape 1 — Créons l'interceptor

import { HttpInterceptorFn } from '@angular/common/http';
import { inject } from '@angular/core';
import { TranslocoService } from '@@jsverse/transloco'; // ou use de LOCALE_ID directement

export const languageHeaderInterceptor: HttpInterceptorFn = (req, next) => {
  const currentLang = inject(TranslocoService).getActiveLang();

  const cloned = req.clone({
    setHeaders: {
      'Accept-Language': currentLang,
    },
  });

  return next(cloned);
};

Étape 2 — Enregistrer l'interceptor

import { provideHttpClient, withInterceptors } from '@angular/common/http';
import { languageHeaderInterceptor } from './interceptors/language.interceptor';

bootstrapApplication(App, {
  providers: [
    provideHttpClient(withInterceptors([languageHeaderInterceptor])),
  ],
});

Variante : injecter LOCALE_ID à la place de Transloco

import { LOCALE_ID, inject } from '@angular/core';

export const languageHeaderInterceptor: HttpInterceptorFn = (req, next) => {
  const locale = inject(LOCALE_ID); // 'fr', 'en', etc.
  return next(
  req.clone({ setHeaders: { 'Accept-Language': locale } })
  );
};

Résultat attendu

✅ Chaque requête HTTP envoie automatiquement :

GET /api/produits
Accept-Language: fr

Conclusion

Le HttpInterceptor est vraiment pratique pour centraliser des actions à effectuer sur les requêtes HTTP ou leur réponse. Un autre use case courant serait de centraliser la gestion des erreurs HTTP.

👉🏼Envie d'aller plus loin en Angular ? Rejoins-nous https://pim.ms/gjvOEOb

📧 Reste informé(e) !

Reçois les derniers articles et conseils EasyAngularKit directement dans ta boîte mail.

S'inscrire gratuitement

EasyAngularKit

Formation complète pour maîtriser Angular et développer des applications web modernes.

Navigation

Contact

Légal

© 2026 Easy Angular Kit. Tous droits réservés.