我有一个 Angular 前端向我的服务器发送 JSON 更新,但 Grails 不会在控制器中看到它。我刚刚升级到 Grails 2.5。我的 EpisodeController 上有一个名为“/addGuest”的控制器方法:
def addGuest(Episode episode) {
println "J: "+ request.JSON;
}
Run Code Online (Sandbox Code Playgroud)
我从 Angular 发送以下内容
service.addGuest = function(episode, guest) {
return $http.put(getUrlForId(episode.id)+"/addGuest", {guest: guest});
}
Run Code Online (Sandbox Code Playgroud)
来宾 json 看起来像
{guest: {name: "a", email: "a"}}
Run Code Online (Sandbox Code Playgroud)
我的路线是
"/episode/$id/addGuest"(method: 'PUT', controller: "episode", action: "addGuest", parseRequest: true)
Run Code Online (Sandbox Code Playgroud)
但是当我从 Angular 或 Rest Console chrome 插件发送数据时,request.JSON 始终为空白“[:]”。如果我将 RestConsole 中的 Content-type 从 'application/json' 更改为 'text/plain',数据就会显示出来!通过 json 输入数据似乎是一件基本的事情,应该可以正常工作,所以我确定我搞砸了。任何帮助将不胜感激。谢谢。
不久前我遇到了一个类似的问题,并在这个问题上绞尽脑汁,我认为一旦 grails 填充了您的 Episode 对象,request.JSON 就会被清空。缓冲区已用完。您可以删除 Episode 作为该方法的参数,并在任何其他处理发生之前查看 request.JSON 是否可用。
def addGuest() {
println "J: "+ request.JSON;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您需要通过 JSON 发送比进入域的数据更多的数据,请使用命令对象,然后将您需要的内容复制到适当的域中。这样,您仍然可以让 grails 做它的约定。
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |