grails - Grails:为什么来自 GET 请求的 JSON 没有绑定到控制器操作中的命令对象?
问题描述
注意:我使用的是 Grails 2.5.5。
这是我在控制器中的方法(我知道 save() 不应该是 GET,但我只是在测试一下):
def save(Test cmd) {
println cmd.duration
println params.duration
}
这是我的客户代码:
let data = JSON.parse($('#req').val());
$.ajax({
url: url,
data: data,
method: 'GET',
contentType: 'application/json'
});
执行此流程时,在控制器端,cmd.duration
不打印从客户端发送的内容(而是默认值为零,因为持续时间被键入为 int)。另一方面,params.duration
打印从客户端发送的内容。
所以这表明这不是数据如何发送的问题,而是与一些数据绑定问题有关?
此外,仅供参考,POST 与上述服务器端代码完美配合。只要我相应地更改客户端代码(更改方法类型并将 JSON 字符串化),命令对象就会被适当地填充:
let data = JSON.parse($('#req').val());
$.ajax({
url: url,
data: JSON.stringify(data),
method: 'POST',
contentType: 'application/json'
});
我知道那里有类似的问题,但似乎大多数都处理 POST 请求的问题。所以这有点不同。
任何帮助表示赞赏!
解决方案
看起来我只需要contentType
在客户端的 ajax 调用中删除 GET 请求。一旦我这样做了,一切都按预期工作。
不确定这是否是预期的行为,但它现在对我有用。
推荐阅读
- c++ - 预期的成员名称或“;” 在声明说明符之后
- spring-kafka - Spring Kafka:凭证轮换
- android - 如何在 android JAVA CODE 中集成 camerax 和 google ML kit 进行条码扫描?
- pdf - 使用用户脚本在浏览器内强制打开 blob url 内联
- javascript - JavaScript:防止 div 在表单中发布
- python - 将 4D 浮点数组从 txt(字符串)文件转换为 numpy 浮点数组
- python - 在matplotlib中使用pcolor具有不同阴影颜色的多个阴影区域
- python-3.x - 意外安装 GIT 子模块
- c# - Json 到 C# 模型问题一个类总是返回 null
- python - Python文件目录问题