我想知道Grails中是否有一种方法可以返回HTML或JSON,这取决于我对某个动作进行GET还是只是通过Ajax调用一个动作。
例如,如果我对“ controller / action”进行Ajax调用,是否可以返回JSON,并且如果我通过链接转到相同的“ controller / action”,则使其呈现HTML页面?还是我必须定义两个不同的动作?
通常,所有AJAX请求都X-Requested-With
设置了标头。您可以检查此标头是否已设置并呈现所需的响应格式:
if (request.getHeader('X-Requested-With')) {
// render response as JSON
} else {
// render HTML page
}
或者(如Martin Hauner在评论中指出的那样)使用request.xhr
属性基本上相同,并且true
如果当前请求是AJAX则返回:
if (request.xhr) {
// render response as JSON
} else {
// render HTML page
}
request
是表示当前请求的对象。在Grails文档中阅读有关它的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句