首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2 Universal 404未找到重定向

Angular 2 Universal 404未找到重定向
EN

Stack Overflow用户
提问于 2017-02-06 20:00:42
回答 1查看 1.2K关注 0票数 5

我正在实现一个路由保护(CanActivate接口),在某些情况下我需要重定向到not found页面。这可以通过下面的句子来实现:

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

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

有没有办法正确地解决这个问题?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-10 21:39:17

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

server.tsres.render方法中,添加回调函数并检查res.headersSent布尔值。

代码语言:javascript
复制
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为false时才发送html。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42067300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档