Maison >développement back-end >tutoriel php >Des en-têtes HTTP personnalisés peuvent-ils être inclus lors des redirections en PHP ?

Des en-têtes HTTP personnalisés peuvent-ils être inclus lors des redirections en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-17 19:35:03650parcourir

Can Custom HTTP Headers Be Included During Redirects in PHP?

En-têtes HTTP personnalisés lors des redirections

Lors de la redirection vers une autre page en PHP, il peut être nécessaire d'inclure des en-têtes HTTP personnalisés dans le cadre du processus de redirection. La directive standard header("Location: http://...") ne fournit pas de méthode pour définir des en-têtes personnalisés.

Résoudre le problème

Malgré les affirmations au contraire, la définition d'en-têtes HTTP personnalisés ainsi qu'une redirection n'est pas possible en PHP ou dans tout autre langage. La raison en est la nature des redirections HTTP. Lorsqu'une redirection se produit, le client (navigateur) exécute la redirection en fonction de l'en-tête « Location » fourni par le serveur. Les en-têtes HTTP personnalisés font partie de la réponse à la demande de redirection, qui est envoyée une fois que le navigateur a déjà lancé la redirection.

Approches alternatives

Depuis la définition des en-têtes HTTP personnalisés pendant les redirections n’est pas réalisable, des approches alternatives sont nécessaires. Une option consiste à utiliser JavaScript et l'objet XMLHttpRequest pour effectuer une requête asynchrone vers la page cible avec les en-têtes personnalisés souhaités. Cela nécessite l'implémentation de CORS sur le serveur cible pour autoriser de telles requêtes.

Une autre option consiste à utiliser le code côté serveur pour interagir directement avec la page cible sans redirection. Cette approche implique d'envoyer une requête HTTP à la page cible, de définir les en-têtes HTTP personnalisés et de récupérer les données de réponse. La réponse peut ensuite être renvoyée au client dans un format personnalisé.

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