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 关注
- 88 浏览
添加回答
举报