以下是我的javascript代码片段:
${remoteFunction(controller: 'job', action: 'updateTimeStamp', update: 'randomString', params: '{timeStamp:timeStamp, sessionId:sessionId}')};
var jobIsDone = ${remoteFunction(controller: 'job', action: 'jobIsDone', params: '{sessionId:sessionId}')};
第一行按预期工作,第二行给出404异常。 jobIsDone()方法不会呈现任何内容。我无法找到remoteFunction标签的正确解释,但据我所知,它可以在不渲染的情况下使用,我错了吗?
以下是控制器方法:
def updateTimeStamp(){
timeStampMap.putAt(params.sessionId, params.timeStamp)
def randomString = bcvjobService.saySomething()
render "<p>${randomString}</p>"
}
def jobIsDone(){
if (jobDone.get(params.sessionId)){
return true
}
else return false
}
答案 0 :(得分:0)
试试这个:
def jobIsDone(){
if (jobDone.get(params.sessionId)){
response.sendError(200,"ok")
}
else {
response.sendError(500,"error")
}
}
这样可以防止找不到404。如果您想要返回带有JSON的真或假,例如:
def jobIsDone(){
def result = [error:true]
if (jobDone.get(params.sessionId)){
result.error = false
}
render result as JSON
}