Maison >développement back-end >tutoriel php >Est-il possible d'utiliser Header() pour la redirection avec des en-têtes personnalisés ?

Est-il possible d'utiliser Header() pour la redirection avec des en-têtes personnalisés ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-17 19:31:301078parcourir

Is it Possible to Use Header() for Redirection with Custom Headers?

Technique présomptive de redirection avec des en-têtes personnalisés

À l'origine, l'intention était d'exploiter la fonction header() de PHP pour rediriger vers une page spécifique tout en transmettre simultanément des en-têtes HTTP personnalisés. Cependant, cette approche n'est pas réalisable.

Dévoiler l'impossibilité

Contrairement à la croyance populaire, il est impossible d'utiliser header() plusieurs fois pour obtenir le résultat souhaité. La raison de cette limitation réside dans le fait que ces en-têtes sont associés à la réponse de redirection, et non à la redirection elle-même. Ainsi, toute tentative de définition d'en-têtes personnalisés à l'aide de cette méthode sera vaine.

Une voie alternative : exploiter XMLHttpRequest et CORS

La solution unique pour demander à un navigateur d'émettre une requête HTTP avec un en-tête personnalisé consiste à utiliser l'objet XMLHttpRequest de Javascript et à implémenter CORS sur le serveur de destination. XMLHttpRequest possède la capacité de lancer des requêtes asynchrones avec des en-têtes personnalisés. Cependant, il est impératif de noter que cette méthode n'est viable que si le serveur cible autorise de telles requêtes ajax via l'implémentation CORS.

Exclusion de la redirection côté client

Il est important de souligner qu'une page Web ne peut pas définir d'en-têtes de requête HTTP à moins qu'elle n'initie une requête asynchrone via XMLHttpRequest. Par conséquent, la mise en œuvre de la redirection susmentionnée avec des en-têtes personnalisés côté client est également un objectif inaccessible.

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