Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tidak dapat menukar permintaan POST kepada GET permintaan menggunakan Gin/GoLang

Tidak dapat menukar permintaan POST kepada GET permintaan menggunakan Gin/GoLang

PHPz
PHPzke hadapan
2024-02-10 19:45:08513semak imbas

无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求

editor php Baicao akan memperkenalkan kepada anda masalah biasa hari ini, iaitu cara menukar permintaan POST kepada permintaan GET apabila menggunakan rangka kerja Gin/GoLang. Kadangkala kami mungkin perlu menukar permintaan POST kepada permintaan GET, seperti dalam beberapa situasi tertentu atau untuk kemudahan ujian. Walau bagaimanapun, melaksanakan ciri ini tidak semudah itu dan memerlukan beberapa helah dan pelarasan kod. Seterusnya, kami akan menjawab soalan ini untuk anda langkah demi langkah dan membantu anda berjaya menyelesaikan penukaran ini.

Kandungan soalan

Saya nampaknya tidak boleh menukar kaedah pos dengan kaedah dapatkan dalam rangka kerja gin. Apabila saya menerima permintaan, saya ingin menyemak kelayakannya dan, jika sah, ubah hala ke halaman lain yang mempunyai titik akhir get. Setiap kali saya menggunakan c.request.method="get" nampaknya hanya menukar permintaan untuk titik akhir semasa, tetapi yang diubah hala masih mempunyai kaedah asal, iaitu kaedah pos.

Kod:

auth.GET("/sign-in", func(c *gin.Context) {
    c.File("../../html/index.html")
})

auth.POST("/sign-in", func(c *gin.Context) {
    c.Request.Method = "GET"
    c.Redirect(http.StatusTemporaryRedirect, "/profile/:pid")
})

code 307请求原本是post请求,由端点本身更改为get.

Laksanakan c.request.method="get" tidak membantu. Tak jumpa jawapan pun. Sebarang idea bagaimana untuk mengubah tingkah laku ini? Adakah membuat permintaan baharu satu-satunya penyelesaian?

Penyelesaian

307 kod status Dokumentasi berkata:

Kaedah dan kandungan permintaan asal digunakan semula untuk melaksanakan permintaan diubah hala. Jika anda ingin menukar kaedah yang digunakan untuk GET, gunakan 303 See Other.

Jadi jika anda menukar http.StatusTemporaryRedirect 更改为 http.StatusSeeOther , ia akan berfungsi tanpa mengubah kaedah permintaan asal.

Atas ialah kandungan terperinci Tidak dapat menukar permintaan POST kepada GET permintaan menggunakan Gin/GoLang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam