此问题在此处已有答案:
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的帖子并尝试了一下,但它们似乎都不起作用。可能是因为我做错了什么。
1条答案
按热度按时间rkue9o1l1#
这里的问题是字段没有导出。
字符串