Maison >développement back-end >tutoriel php >Est-il possible de définir des en-têtes personnalisés dans les redirections PHP ?

Est-il possible de définir des en-têtes personnalisés dans les redirections PHP ?

DDD
DDDoriginal
2024-10-17 19:32:02922parcourir

Is It Possible to Set Custom Headers in PHP Redirects?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn