我会实现pajax,如果请求是ajax,我需要检查服务器端并将布局设置为null以返回没有布局的视图。
我知道req对象包含一个' xhr'属性。如何将布局自动置零?
提前致谢!
编辑:我找到了解决方案!见这里:https://stackoverflow.com/a/31571250/4870013答案 0 :(得分:4)
您可以查看req.wantsJSON对象:
// True, if the request has a xhr polling origin. (via socket)
req.wantsJSON = req.xhr;
示例:
if (req.wantsJSON) {
res.view("yourView", { layout: null });
} else {
res.view("yourView");
}
答案 1 :(得分:1)
您可以通过检测请求
来执行此操作
if(!Request.isAjax)
{
// your code with return Layout
}
else
{
// your code without return Layout
}
答案 2 :(得分:1)
如果request.headers包含HTTP_X_REQUESTED_WITH,则可以检查它。
如果HTTP_X_REQUESTED_WITH的值为XMLHttpRequest,则它是ajax请求。
示例:
if (request.headers["x-requested-with"] == 'XMLHttpRequest') {
//is ajax request
}
答案 3 :(得分:0)
我找到了解决方案!我使用一项政策来实现这一结果。
我的政策:
module.exports = function(req, res, next) {
if (req.xhr) {
res.locals.layout = null;
}
return next();
};
我的政策配置:
module.exports.policies = {
'*': 'isAjax'
};
像魅力一样工作!