2 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
你的go代碼沒有問題。為什么 echo.Bind()無法檢索從 AJAX 發(fā)送的有效負(fù)載是因?yàn)橛行ж?fù)載不是 JSON 格式。
就$.ajax你需要把JSON.stringify()數(shù)據(jù)轉(zhuǎn)化成JSON字符串格式。
JSON.stringify({
"keyCode" : keyCode
, "ctxWidth" : ctxWidth
, "ctxHeight" : ctxHeight
, "nowBlock" : {"O":0}
})
設(shè)置contentType為application/json不會(huì)自動(dòng)將有效負(fù)載轉(zhuǎn)換為 JSON 字符串。這就是為什么JSON.stringy()仍然需要。
完整的變化:
var payload = JSON.stringify({
"keyCode": keyCode,
"ctxWidth": ctxWidth,
"ctxHeight": ctxHeight,
"nowBlock": {
"O": 0
}
})
$.ajax({
type: "POST",
url: "/game/tetris/api/control",
data: payload,
dataType: "json",
contentType: "application/json"
}).done(function(data) {
......
});

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
也許你應(yīng)該刪除結(jié)構(gòu)標(biāo)簽'form',當(dāng)你使用'application/json'發(fā)送數(shù)據(jù)時(shí),'form'標(biāo)簽未被使用。
當(dāng)我只添加“json”標(biāo)簽時(shí)程序運(yùn)行良好,如果我添加“form”標(biāo)簽,echo 使用“form”并得到一個(gè)錯(cuò)誤。
希望這可以幫到你。
- 2 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)