Go Web 伺服器自動重新導向POST 要求
許多開發者都遇到Go Web 伺服器自動重新導向POST 要求的問題,導致意外行為。當伺服器收到針對特定 URL 的 POST 請求但回應 301(永久移動)狀態代碼,觸發對不同 URL 的後續 GET 請求時,就會出現這種現象。
要了解根本原因,至關重要深入研究 Go 的 http.ServeMux 類型的行為。預設情況下,如果請求在 URL 中包含尾部斜杠,ServeMux 會自動將請求重定向到子樹的根。例如,如果為「/myurl/」註冊了處理程序,則任何對「/myurl」(不含尾部斜線)的請求都將被重定向到「/myurl/」。
在提供的範例中, PHandler 被註冊來處理對「/myurl/」的請求。但是,用戶的瀏覽器被定向到“/myurl”,而沒有尾部斜線。因此,ServeMux 會偵測到此差異,並向正確的 URL 發出 301 重定向,有效地將 POST 請求轉換為 GET 請求。
要解決此問題,請考慮以下解決方案:
請記住,瀏覽器通常不會在重定向後重複 POST 請求,以保護敏感資料的安全性。
以上是為什麼 My Go Web 伺服器將 POST 請求重定向為 GET?的詳細內容。更多資訊請關注PHP中文網其他相關文章!