嗨,我正在写一个从我的网站到外部网站的发帖请求。发布成功后,它应该自动重定向到给定的url,并以该站点的形式显示为2nd参数,但这不会发生。我尝试将responseType: "text"
作为第三个参数,这导致响应页面中的html,我希望将其重定向到。如何在没有文本回复的情况下执行实际的重定向?
我的功能如下:
sendRequest() {
//url that I am posting to and it should redirect to, params are given HTTPParams
this.http.post(this.url,this.params)
.subscribe(
data => {
//apparently following line is not needed.
this.router.navigateByUrl(this.url);
},
error => {
console.log("Error", error, this.params);
this.data = error;
},
() => {
console.log("POST is completed");
});
}
答案 0 :(得分:1)
我找到了解决方案。正如fjc所说,我只需要在带有url的html中使用action =“ post”。以前我尝试过,但是什么也没发生。经过数小时的调试,我发现Formsmodule
正在覆盖/阻止提交表单,因此这种方式行不通。
答案 1 :(得分:0)
在这种情况下,您不应该使用“ router.navigate”,因为使用它意味着您要导航到应用程序内部定义的路由。
请尝试以下方法:
sendRequest() {
//url that I am posting to and it should redirect to, params are given HTTPParams
this.http.post(this.url,this.params)
.subscribe(
data => {
//apparently following line is not needed.
//this.router.navigateByUrl(this.url);
window.location.href = this.url;
},
error => {
console.log("Error", error, this.params);
this.data = error;
},
() => {
console.log("POST is completed");
});
}
它应该重定向到上述网址,离开角度应用程序