亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 VueJS 將 JSON 發布到本地主機 Go 后端時的 EOF

使用 VueJS 將 JSON 發布到本地主機 Go 后端時的 EOF

Go
LEATH 2023-08-07 10:40:04
我正在使用 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: EOFgoroutine 35 [running]:net/http.(*conn).serve.func1(0xc000196000)        c:/go/src/net/http/server.go:1769 +0x140panic(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。
查看完整描述

1 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

我通過在后端使用以下代碼添加來接受 OPTIONS 來使其工作。


路由:


r.HandleFunc("/login", models.LoginCORSHandler()).Methods("OPTIONS")

處理器:


// LoginCORSHandler handle OPTIONS request

func LoginCORSHandler() 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-Methods", "POST")

        w.Header().Set("Access-Control-Allow-Headers", "Content-Type")

        w.WriteHeader(http.StatusOK)

    }

}


查看完整回答
反對 回復 2023-08-07
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號