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.