Maison  >  Article  >  développement back-end  >  Pourquoi les requêtes POST de mon serveur Web Go sont-elles redirigées vers les requêtes GET ?

Pourquoi les requêtes POST de mon serveur Web Go sont-elles redirigées vers les requêtes GET ?

DDD
DDDoriginal
2024-11-24 02:27:09561parcourir

Why Are My Go Web Server POST Requests Being Redirected to GET Requests?

Le serveur Web Go redirige automatiquement les requêtes POST

Lorsque vous rencontrez le problème frustrant des requêtes POST redirigées vers des requêtes GET dans un serveur Web Go, la cause réside dans un détail subtil : la barre oblique finale dans le chemin enregistré.

Par défaut, le HTTP L'implémentation de ServeMux effectue une redirection lorsqu'une demande est reçue pour une racine de sous-arbre sans barre oblique finale. Si votre gestionnaire est enregistré avec /myurl/ mais que la requête est envoyée à /myurl, le serveur répond par une redirection 301 vers le chemin correct.

Solution :

La résolution de ce comportement implique l'une des approches suivantes :

  • Directer le navigateur vers le bon URL : Assurez-vous que le navigateur est dirigé vers /myurl/ avec la barre oblique finale incluse.
  • Enregistrez le gestionnaire uniquement sur le chemin spécifique : Gérez les demandes pour /myurl séparément en enregistrant le gestionnaire dans /myurl.
  • Enregistrez les deux chemins : Enregistrez le gestionnaire dans les deux /myurl et /myurl/, permettant à l'un ou l'autre chemin de déclencher l'action souhaitée sans redirection.

Remarques supplémentaires :

  • Des requêtes POST redirigées en résulteront dans une requête GET envoyée par le navigateur, pas une autre requête POST.
  • Pour des raisons de sécurité, les navigateurs ne renvoient pas automatiquement POSTez les données lors de la redirection.
  • Explorez les ressources fournies dans la réponse d'origine pour plus d'informations sur ce comportement.

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