gpt4 book ai didi

ajax - 使 Controller 根据请求类型返回HTML或JSON

转载 作者:行者123 更新时间:2023-12-02 14:32:00 24 4
gpt4 key购买 nike

我想知道Grails中是否有一种方法可以返回HTML或JSON,这取决于我对某个 Action 进行GET还是只是通过Ajax调用一个 Action 。

例如,如果我对“controller / action”进行Ajax调用,是否可以返回JSON,并且如果我通过链接转到同一“controller / action”,则使其呈现HTML页面?还是我必须定义两个不同的 Action ?

最佳答案

通常,所有AJAX请求都设置了 X-Requested-With header 。您可以检查此 header 是否已设置并呈现所需的响应格式:

if (request.getHeader('X-Requested-With')) {
// render response as JSON
} else {
// render HTML page
}

或者(如Martin Hauner在评论中指出的那样)使用 request.xhr属性,该属性基本相同,如果当前请求是AJAX,则返回 true:
if (request.xhr) {
// render response as JSON
} else {
// render HTML page
}
request是代表当前请求的对象。 Read more about it in Grails documentation.

关于ajax - 使 Controller 根据请求类型返回HTML或JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497313/

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