没有渲染,remoteFunction将无法工作

时间:2014-11-20 12:12:39

标签: grails

以下是我的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
}

1 个答案:

答案 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

}