Heim >Backend-Entwicklung >Golang >Warum werden POST-Anfragen meines Go-Webservers in GET-Anfragen umgeleitet?

Warum werden POST-Anfragen meines Go-Webservers in GET-Anfragen umgeleitet?

DDD
DDDOriginal
2024-11-24 02:27:09564Durchsuche

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

Go-Webserver leitet POST-Anfragen automatisch um

Wenn Sie auf das frustrierende Problem stoßen, dass POST-Anfragen in GET-Anfragen in einem Go-Webserver umgeleitet werden, Die Ursache liegt in einem subtilen Detail: dem abschließenden Schrägstrich im registrierten Pfad.

Standardmäßig ist das HTTP Die ServeMux-Implementierung führt eine Umleitung durch, wenn eine Anfrage für einen Teilbaumstamm ohne abschließenden Schrägstrich empfangen wird. Wenn Ihr Handler bei /myurl/ registriert ist, die Anfrage aber an /myurl gesendet wird, antwortet der Server mit einer 301-Weiterleitung zum richtigen Pfad.

Lösung:

Die Behebung dieses Verhaltens erfordert einen der folgenden Ansätze:

  • Direkter Browser auf die richtige Seite URL: Stellen Sie sicher, dass der Browser auf /myurl/ mit dem abschließenden Schrägstrich verweist.
  • Registrieren Sie den Handler nur für den spezifischen Pfad: Behandeln Sie Anfragen für /myurl separat, indem Sie den registrieren Handler für /myurl.
  • Registrieren Sie beide Pfade: Registrieren Sie den Handler für beide /myurl und /myurl/, sodass jeder Pfad die gewünschte Aktion ohne Umleitung auslösen kann.

Zusätzliche Hinweise:

  • Umgeleitete POST-Anfragen werden die Folge sein in einer GET-Anfrage, die vom Browser gesendet wird, nicht in einer anderen POST-Anfrage.
  • Aus Sicherheitsgründen senden Browser nicht automatisch erneut POST-Daten bei Weiterleitung.
  • Erkunden Sie die in der ursprünglichen Antwort bereitgestellten Ressourcen, um weitere Einblicke in dieses Verhalten zu erhalten.

Das obige ist der detaillierte Inhalt vonWarum werden POST-Anfragen meines Go-Webservers in GET-Anfragen umgeleitet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn