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!