我正在尝试将 JSON 参数发送到我的服务器并使用 json.Decoder 解析它们。我读过您应该能够从 request.Body 属性中获取查询参数。以下是我的服务器代码:
func stepHandler(res http.ResponseWriter, req *http.Request) {
var v interface{}
err := json.NewDecoder(req.Body).Decode(&v)
if err != nil {
// handle error
}
log.Println(v)
}
每次,我都会看到2014/12/26 22:49:23 <nil>(当然是差异时间戳)。我的客户端 AJAX 调用如下:
$.ajax({
url: "/step",
method: "get",
data: {
steps: $("#step-size").val(),
direction: $("#step-forward").prop("checked") ? 1 : -1,
cells: JSON.stringify(painted)
},
success: function (data) {
painted = data;
redraw();
},
error: function (xhr) {
console.log(xhr);
}
});
发送内容的示例 URL:
http://localhost:5000/?steps=1&direction=1&cells=%5B%7B%22row%22%3A11%2C%22column%22%3A15%7D%2C%7B%22row%22%3A12%2C%22column%22%3A15%7D%5D
更好地查看参数:
{
steps: "1",
direction: "1",
cells: "[{"row":11,"column":15},{"row":12,"column":15}]"
}
我已经尝试过 GET 和 POST 请求。
为什么我的 req.Body 从不解码?如果我尝试单独打印 req.Body,我也会看到 nil。
回首忆惘然
守着一只汪
相关分类