Maison >développement back-end >tutoriel php >Est-il possible de définir des en-têtes personnalisés dans les redirections PHP ?
En-têtes personnalisés dans les redirections PHP : une requête impossible
Lors d'une redirection vers une page utilisant PHP, vous pouvez rencontrer un défi en tentant de passer avec les en-têtes HTTP personnalisés avec la redirection. La méthode standard de redirection implique l'utilisation de la syntaxe header("Location: http://..."). Cependant, cette approche définit uniquement les en-têtes pour la réponse qui déclenche la redirection, pas pour la redirection elle-même.
En réalité, il n'est pas possible de rediriger vers une page avec des en-têtes personnalisés définis. Quel que soit le langage ou le framework utilisé, il n'existe aucun mécanisme pour lancer une redirection HTTP tout en demandant simultanément au client (navigateur) d'ajouter un en-tête personnalisé.
Bien qu'il puisse sembler logique d'utiliser plusieurs appels header(), cette approche ne réussira pas. Les en-têtes personnalisés que vous définissez n'affecteront que la réponse qui initie la redirection, pas la redirection elle-même.
La seule méthode permettant à un site Web de demander à un navigateur d'émettre une requête HTTP avec un en-tête personnalisé consiste à utiliser JavaScript et le Objet XMLHttpRequest. Cependant, cette approche nécessite l'implémentation de CORS sur le serveur cible pour permettre de telles XMLHttpRequests asynchrones.
Il est essentiel de se rappeler qu'une page ne peut pas définir d'en-têtes de requête HTTP à moins qu'elle n'effectue une requête asynchrone à l'aide de XMLHttpRequest. Cela implique que vous ne pouvez pas non plus implémenter la redirection avec un en-tête personnalisé côté client.
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!