我正在用 JavaScript 向我的 Go 服務器發出 POST 請求,以 POST 一些 JSON 資料。后端成功接收資料。
如果我控制臺記錄諾言的結果,我會在呼叫fetchResponse.json()的行收到Unexpected end of JSON input錯誤。我不知道為什么會這樣。
JavaScript
const sendScore = async () => {
try {
const fetchResponse = await fetch(`http://localhost:8000/sendscore`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({name:"kris"})
});
const data = await fetchResponse.json();
return data;
} catch (e) {
return e;
}
}
const sendScoreBtn = document.querySelector("#sendScoreBtn");
sendScoreBtn.addEventListener("click", () => {
console.log("Sending score...")
const res = sendScore()
res.then(console.log)
})
轉到/sendscore 端點處理程式
func recieveScore(w http.ResponseWriter, r *http.Request) {
var res playerScore
if err := json.NewDecoder(r.Body).Decode(&res); err != nil {
fmt.Println("Line 31", err)
}
fmt.Println("Res", res)
}
func main() {
// Serve static files(js, css)
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))
http.HandleFunc("/", homePage)
http.HandleFunc("/sendscore", recieveScore)
fmt.Println("Server started. Listening on port :8000")
log.Fatal(http.ListenAndServe(":8000", nil))
}
uj5u.com熱心網友回復:
我的問題是沒有將回應發送回瀏覽器,因此它無法決議任何 JSON。更新了 Go 處理程式,使流程正常作業。
func recieveScore(w http.ResponseWriter, r *http.Request) {
var res playerScore
if err := json.NewDecoder(r.Body).Decode(&res); err != nil {
fmt.Println("Line 31", err)
}
fmt.Println("Res", res)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(res) // Writing the result to response
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/446756.html
標籤:javascript 走 邮政 异步等待 拿来
上一篇:顯示模式而不是控制臺警報
