Encyclopédie des erreurs

En-têtes non transférés par HttpTransferCache

Angular produit cet avertissement lorsque du code tente d'accéder à un en-tête HTTP qui n'a pas été transféré du serveur au client par le HttpTransferCache.

Par défaut, HttpTransferCache ne transfère aucun en-tête, pour éviter d'éventuels problèmes de sécurité ou des transferts de données inutiles. Lorsqu'un en-tête non inclus est sollicité côté client, Angular journalise cet avertissement pour vous aider à identifier les en-têtes manquants.

Corriger l'erreur

Pour inclure des en-têtes spécifiques dans le transfer cache, utilisez l'option includeHeaders.

Au niveau de la requête

Ajoutez le paramètre transferCache à votre requête HTTP :

this.http.get('/api/data', {
  transferCache: {
    includeHeaders: ['cache-control', 'etag'],
  },
});

Au niveau de l'application

Configurez includeHeaders lorsque vous fournissez le transfer cache :

provideClientHydration(
  withHttpTransferCacheOptions({
    includeHeaders: ['cache-control', 'etag'],
  }),
);

N'incluez que les en-têtes nécessaires à la logique de votre application. Soyez prudent avec les en-têtes sensibles.

Déboguer l'erreur

Le message d'avertissement inclut le nom de l'en-tête et l'URL de la requête. Cherchez dans votre code l'endroit où cet en-tête est sollicité et déterminez s'il doit être inclus dans le transfer cache.

Si l'en-tête n'est pas nécessaire côté client, envisagez de refactoriser votre code pour éviter d'y accéder.