我的客戶端 javascript 將此 JSON 發(fā)布到服務(wù)器端:{ username: 'hello', password: 'world' }我的 Go 服務(wù)器端代碼:type AuthJSON struct { Username string `json:"username"` Password string `json:"password"`}func AuthenticationHandler(w http.ResponseWriter, r *http.Request) { // Parse the incoming user/pass from the request body var body AuthJSON err := json.NewDecoder(r.Body).Decode(&body) log.Println(body) log.Println(body.Username) if err != nil { log.Println(err) panic(err) } ...}我的終端如下所示:2013/07/31 20:26:53 { }2013/07/31 20:26:53 2013/07/31 20:26:53 invalid character 'u' looking for beginning of value2013/07/31 20:26:53 http: panic serving [::1]:58141: invalid character 'u' looking for beginning of valuegoroutine 9 [running]:net/http.func·007()...顯然,我的 JSON 解析有問題,我收到一個錯誤,并調(diào)用了 panic(err)。無效字符 'u' 來自我的 JSON 中的用戶名部分。我已經(jīng)用 Node 服務(wù)器測試了客戶端,效果很好。Go 非常新。任何幫助都會很棒。
3 回答

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊
您不是在 JSON 中發(fā)送數(shù)據(jù)。這就是你的 Go 服務(wù)器無法讀取的原因。使用這樣的東西:
$.ajax({
url: '/api/auth.json',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data)
// you can add callbacks as “complete”, “success”, etc.
});
我必須補(bǔ)充一點(diǎn),我不是 jQuery 專家,因此可能有捷徑。

慕少森
TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊
嘗試通過 POSTMAN 發(fā)出請求時,我遇到了同樣的問題。將正文數(shù)據(jù)類型更改為raw
并按json
格式添加數(shù)據(jù),然后它將正常工作,標(biāo)題也必須是application/json
- 3 回答
- 0 關(guān)注
- 236 瀏覽
添加回答
舉報
0/150
提交
取消