Go语言 显示传入HTTP POST请求的JSON数据时出现问题[重复]

roejwanj  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(92)

此问题在此处已有答案

Converting Go struct to JSON(5个回答)
19天前关闭
服务器端Go代码

package main

    import (
        "encoding/json"
        "fmt"
        "net/http"
    )

    type Authentication struct {
        username string 
        password string
    }

    func main() {

        mux := http.NewServeMux()

        mux.HandleFunc("/auth", func(w http.ResponseWriter, req *http.Request) {
            decoder := json.NewDecoder(req.Body)
            var auth Authentication
            err := decoder.Decode(&auth)

            if err != nil {
                http.Error(w, "Failed to decode JSON", http.StatusBadRequest)
                return
            }

            fmt.Printf("Received authentication: %+v\n", auth)
        })
    
        mux.Handle("/",http.FileServer(http.Dir("./static")))

        fmt.Printf("Starting server at port 3000\n")

        http.ListenAndServe(":3000", mux)
    }

字符串
客户端JavaScript代码:

//--Variables--//
    let signin = document.getElementById("Signin");
    let username = document.getElementById("Username");
    let password = document.getElementById("Password");

    signin.onclick = () => {
      let data = {
        username: username.value,
        password: password.value,
      };
      sendData("/auth", data);
      console.log(data.username, "   ", data.password);
    };

    //--Functions--//
    const sendData = (url, data) => {
    fetch(url, {
        method: "POST",
        headers: {
          Accept: "application/json",
          "Content-Type": "application/json",
        },
        body: JSON.stringify(data),
      });
    };


我的问题是,是的,POST请求确实通过,可以在服务器端看到,但我实际上看不到POST请求的内容。这是当请求通过时在服务器端打印的内容:接收到的身份验证:{用户名:密码:}它是空的。我的问题是:为什么它是空的,我对Go很陌生,我不知道如何编码JSON数据。ChatGPT说代码应该可以正常工作。
我搜索了其他Stackoverflow的帖子并尝试了一下,但它们似乎都不起作用。可能是因为我做错了什么。

rkue9o1l

rkue9o1l1#

这里的问题是字段没有导出。

type Authentication struct {
        Username string `json:"username"`
        Password string `json:"password"
    }

字符串

相关问题