2 回答

TA貢獻1865條經驗 獲得超7個贊
你的go代碼沒有問題。為什么 echo.Bind()無法檢索從 AJAX 發送的有效負載是因為有效負載不是 JSON 格式。
就$.ajax你需要把JSON.stringify()數據轉化成JSON字符串格式。
JSON.stringify({
"keyCode" : keyCode
, "ctxWidth" : ctxWidth
, "ctxHeight" : ctxHeight
, "nowBlock" : {"O":0}
})
設置contentType為application/json不會自動將有效負載轉換為 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貢獻1806條經驗 獲得超5個贊
也許你應該刪除結構標簽'form',當你使用'application/json'發送數據時,'form'標簽未被使用。
當我只添加“json”標簽時程序運行良好,如果我添加“form”標簽,echo 使用“form”并得到一個錯誤。
希望這可以幫到你。
- 2 回答
- 0 關注
- 131 瀏覽
添加回答
舉報