我正在使用 VueJS 用于前端和 Go 用于后端设置登录系统。我目前陷入了以JSON格式将用户名和密码发布到后端的困境。
目前,在早些时候与 Axios 运气不好之后,我正在尝试使用 fetch 发布。
发布方法:
fetch("http://localhost:9444/login", {
method: "post",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"emailAddress": "myName",
"password": "myPassword"
})
})
.then( (response) => {
console.log(response)
});
然后我在后端路由,例如:
r := mux.NewRouter().StrictSlash(true)
r.HandleFunc("/login", models.LoginHandler(db)).Methods("POST", "OPTIONS")
登录处理程序:
func LoginHandler(db *sql.DB) func(w http.ResponseWriter, req *http.Request) {
return func(w http.ResponseWriter, req *http.Request) {
// w.Header().Set("Access-Control-Allow-Origin", "*")
// w.Header().Set("Access-Control-Allow-Headers", "*")
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Header().Set("Access-Control-Allow-Origin", "*")
// Initialize loginInfo
loginInfo := LoginInfo{}
// Decode request body using JSON
err := json.NewDecoder(req.Body).Decode(&loginInfo)
if err != nil {
panic(err)
}
println(loginInfo.EmailAddress)
println(loginInfo.Password)
w.WriteHeader(http.StatusOK)
w.Write([]byte("Test message."))
}
}
目前导致解码部分崩溃,如下所示:
2019/11/12 14:45:53 http: panic serving [::1]:57224: EOF
goroutine 35 [running]:
net/http.(*conn).serve.func1(0xc000196000)
c:/go/src/net/http/server.go:1769 +0x140
panic(0x8be000, 0xc00005c050)
c:/go/src/runtime/panic.go:522 +0x1c3
_/H_/Development/clientportal/backend/models.LoginHandler.func1(0x9f7360, 0xc0001be000, 0xc0001a8200)
...
什么可能导致持续 EOF 错误?我已经使用邮递员测试(并确认了正确的功能):
{
"emailAddress": "login",
"password": "passw"
}
正确返回状态 200。
www说
相关分类