gpt4 book ai didi

angular2-universal - Angular 2 Universal 404 Not Found 重定向

转载 作者:行者123 更新时间:2023-12-01 04:50:02 27 4
gpt4 key购买 nike

我正在实现一个路由保护(CanActivate 接口(interface)),我需要在某些条件下重定向到未找到的页面。这可以通过以下语句来实现:

if (isNode){
let res : Response = Zone.current.get('res');
res.status(404).redirect('/not-found');
}else{
this.router.navigate(['not-found']);
}


这可行,但会引发服务器端异常(错误:发送后无法设置 header ),因为无论重定向如何,angular2-universal 仍会发送呈现的页面。

有什么办法可以正确解决这个问题吗?

提前致谢。

最佳答案

实际上有一个绕过错误的解决方案。

server.tsres.render方法添加回调函数并检查res.headersSent bool 值。

server.get('*', (req, res) => {
res.render('../public/index.html', {req, res},
(error, html) => {
if(error)
// error handle
if (!res.headersSent) {
res.send(html);
}
});
});

显然,只有在 res.headersSent 时才发送 html。是假的。

关于angular2-universal - Angular 2 Universal 404 Not Found 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42067300/

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