📧 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

AngularKit

Suite d'outils pour développeurs Angular francophones. Apprends, modernise tes réflexes, audite ta codebase.

Produits

Contact

Légal

© 2026 AngularKit. Tous droits réservés.