gpt4 book ai didi

javascript - res.send 和 res.render 调用

转载 作者:数据小太阳 更新时间:2023-10-29 05:46:31 28 4
gpt4 key购买 nike

我正在尝试确定是否可以同时调用 res.send(data) 和 res.render('reports')。

为了进一步详细解释,当我路由到“/reports”时,首先在我的服务器端我对返回 json 数据的 API 进行 REST 调用。现在我希望在客户端上访问这个 json 数据,为此我正在从我的 javascript 进行 ajax 调用。因此使用 res.send(),但我也想在此调用中呈现页面

所以它看起来像我的服务器端代码

router.get('/reports', function(req,res){
//Making the REST Call to get the json data
//then
res.send(json);
res.render('reports');
});

每次我在浏览器上点击“/reports”时,我都会看到 json 值而不是正在呈现的页面,并且我的控制台会抛出错误:发送后无法设置 header 。

最佳答案

你可以使用 content negotiation为此,您的 AJAX 请求设置 Accept header 以告诉您的 Express 服务器返回 JSON 而不是 HTML:

router.get('/reports', function(req,res) {
...
if (req.accepts('json')) {
return res.send(theData);
} else {
return res.render('reports', ...);
};
});

或者,您可以使用 req.xhr 检查请求是否通过 AJAX 调用发出(尽管这不是 100% 的故障安全)。

关于javascript - res.send 和 res.render 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847070/

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