Maison >développement back-end >Golang >formulaire html + gin ne peut pas lire correctement le corps de la requête

formulaire html + gin ne peut pas lire correctement le corps de la requête

WBOY
WBOYavant
2024-02-05 22:39:071085parcourir

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

Contenu de la question

J'ai ce formulaire en utilisant htmx et j'essaie d'envoyer la valeur d'entrée de la première entrée au serveur gin

<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>

serveur de démarrage

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]"
})

J'ai pensé que l'URL de la demande de publication contienne la valeur d'entrée en tant que paramètre, mais je suis presque sûr qu'il existe un moyen de le faire dans le corps de la demande, mais il me manque juste quelque chose. Comment obtenir le corps de la requête ou l'entrée "todo" de la requête ?


Bonne réponse


Je pense que vous obtenez simplement la chaîne sous forme de []octet.

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

todo=hello

Je ne pense pas que vous ayez besoin d'analyser ceci todo=hello vous-même. Vous pouvez simplement utiliser :

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

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer