JavaScript POST 请求 Golang 服务器错误 - JSON 输入意外结束

JavaScript POST request to Golang server error - Unexpected end of JSON input

我正在 JavaScript 中向我的 Go 服务器发出 POST 请求以获取一些 JSON 数据。后端成功接收数据。
如果我控制台记录承诺的结果,我会在 fetchResponse.json()[=26= 的行得到 JSON 输入 意外结束错误] 叫做。我不明白为什么会这样。

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)

})

Go /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))
}

我的问题是没有将响应发送回浏览器,因此它无法解析任何 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
}