Heim  >  Artikel  >  Backend-Entwicklung  >  HTML-Formular + Gin kann den Anforderungstext nicht richtig lesen

HTML-Formular + Gin kann den Anforderungstext nicht richtig lesen

WBOY
WBOYnach vorne
2024-02-05 22:39:071083Durchsuche

htmx 表单 + gin 无法正确读取请求正文

Frageninhalt

Ich habe dieses Formular, das Htmx verwendet und versucht, den Eingabewert der ersten Eingabe an den Gin-Server zu senden

<form hx-post="/addtodo" hx-ext="json-enc" hx-trigger="submit" hx-target="#todos" hx-swap="outerhtml">
    <input type="text" placeholder="todo" name="todo" />
    <input type="submit" />
</form>

<ol id="todos"></ol>

Gin-Server

r.POST("/addToDo", func(c *gin.Context) {
    fmt.Println(c.Request.Body)
    // ^this prints "&{0xc0000b2000 <nil> <nil> false true {0 0} false false false 0xeaee20}"

    jsonData, err := ioutil.ReadAll(c.Request.Body)

    if err != nil {
        fmt.Println("something went wrong here boys")
        return
    }

    fmt.Println(jsonData)
    // ^this prints "[116 111 100 111 61 104 101 108 108 111]"
})

Ich habe darüber nachgedacht, dass die Post-Anfrage-URL den Eingabewert als Parameter enthält, aber ich bin mir ziemlich sicher, dass es eine Möglichkeit gibt, das im Anfragetext zu tun, aber mir fehlt einfach etwas. Wie erhalte ich den Anforderungstext oder die Abfrage „todo“-Eingabe?


Richtige Antwort


Ich glaube, Sie erhalten die Zeichenfolge nur als []Byte.

a := []byte{116, 111, 100, 111, 61, 104, 101, 108, 108, 111}
  fmt.Print(string(a))

todo=hello

Ich glaube nicht, dass Sie dieses todo=hello selbst analysieren müssen. Sie können einfach Folgendes verwenden:

https://www.php.cn/link/7476533956dd3568c1d787c5d33a547f

Das obige ist der detaillierte Inhalt vonHTML-Formular + Gin kann den Anforderungstext nicht richtig lesen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen