【问题标题】:Post Should Redirect to Different Page帖子应该重定向到不同的页面
【发布时间】:2019-04-30 03:48:29
【问题描述】:

我有一个 post call 应该将一些内容发布到 URL,在重定向应该发生之后,我看到重定向 url 并在 console-> 网络中获取正确的数据,但页面没有被重定向。

试图访问响应的标头,它在 'location' 中指定了重定向 url,但也无法访问标头。

位置 /abs/Redirect?clientId=abc

我的重定向 url 应该是上面提到的来自我的帖子的响应标头的位置键的值。

这是我的帖子代码。

const test= this.http.post(url, JSON.stringify({ Req: req 
})).subscribe(
      data => {
        console.log(data);
       }
     );

谁能帮助我如何访问来自 Post 的响应的标题,或直接允许重定向。我正在使用角度 6。

【问题讨论】:

  • 你想重定向到路由器模块中定义的路由吗?
  • 不,我必须重定向到我在帖子的响应标头中获得的 url。
  • 您是否可以通过在address bar 中输入直接访问回复中提到的url

标签: angular redirect routing http-post


【解决方案1】:

正如@varundhariyal 所指出的,路由器不会像外部链接那样工作。 解决方法是使用: window.location.href= yourURL


如果您想要的 URL 在响应中,那么您可以尝试以下操作:

在你的构造函数中定义一个路由器实例:

constructor(private route: Router)

(您需要导入它:import { Router } from '@angular/router';

并使用它在您的订阅响应中导航到所需的网址:

const test= this.http.post(url, JSON.stringify({ Req: req })).subscribe(
  data => {
    this.route.navigate(data.url);   //Only works for routes defined in the RouterModule

    window.location.href = data.url; //Absolute path to any URL
  }
);

【讨论】:

  • 我无法访问“数据”的任何属性。
  • 您说“我看到重定向网址并在控制台中获取正确的数据”,控制台打印的数据是什么?
  • 这个方法不行!由于没有定义路由,Router 仅适用于routermodule中已经存在的路由
猜你喜欢
  • 1970-01-01
  • 2015-04-19
  • 2018-11-17
  • 2017-05-27
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多