gpt4 book ai didi

jquery - 从 Javascript 调用 Grails def

转载 作者:行者123 更新时间:2023-11-28 22:37:43 24 4
gpt4 key购买 nike

我正在尝试向一个非常简单的 Grails 方法发出 ajax 请求:

def countRace() {
Date date = params.date("date", 'yyyy-MM-dd');
Integer count = Race.countByDate(date);
log.info("Number of races on " + date + " is " + count);
return [count : count]
}

我正在使用以下 jQuery 代码来执行此操作:

function updateDayRaceCount(id) {
$.ajax({
url: "${g.createLink(controller:'data', action:'countRace')}?date=" + id
}).done(function(response) {
alert(response);
});
}

我在服务器上看到了日志,所以我知道方法被命中了:

grails.app.controllers.runnerdb.DataController Number of races on Thu Mar 06 00:00:00 GMT 2014 is 38

但是 ajax 请求出错并返回 404。当我观察错误时,我发现这是 Tomcat 标准 404 页面,并且正在生成的 URL 看起来像这样:

/runnerdb/data/countRace?date=<id here>

被映射到:

 /runnerdb/WEB-INF/grails-app/views/data/countRace.jsp

这就是问题所在,因为我想 Tomcat 或 grails 正试图呈现一个不存在的 View 。

我的问题是..

我如何在 grails 中仅针对这一个方法停止这种行为,并强制它简单地返回 int 值?

最佳答案

默认情况下,Grails 按约定解析 View 。在您的情况下,您将需要使用渲染而不是返回。通过使用 return,您告诉 Grails 使用您的 return 作为模型继续处理 View 。

下面是一个渲染文本值的例子:

render(text: count)

或者,您可能希望将结果呈现为 JSON(前提是您导入转换器):

render [count: count] as JSON

关于jquery - 从 Javascript 调用 Grails def,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22453762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com