我在Controller中有一个带有Post方法的ASP.NET Core Api和一个调用它的角度服务 直到今天我使用路由器从角度内导航,但我需要知道它是否可能以及如何从服务器重定向并处理角度Post方法上的这种情况,它将接收重定向响应而不是一些JSON对象。浏览器可以自己处理这个问题,还是我需要在收到响应后在调用中做一些事情?
在同一台服务器上运行的客户端和服务器
控制器
[HttpPost]
public ActionResult Post([FromBody]string myvalue)
{
// some operations here
string parameter = SomeFunctionReturningParameter(myvalue);
return new RedirectResult("/component2?param=" + parameter);
}
}
角度服务
public callRedirection(apiEnd:, body: any): Observable<any> {
return this.http.post(endPoint, body)
.map((response) => {
//how to handle redirect here
return response;
})
.catch(error => { console.log(error) });
}
任何想法???
答案 0 :(得分:2)
您应该能够将路由器导入您的组件,并在处理程序中提取路径并导航到该URL。
import { Router } from '@angular.router';
...
constructor(private router: Router...) {
...
}
public callRedirection(apiEnd:, body: any): Observable<any> {
return this.http.post(endPoint, body)
.map((response) => {
//how to handle redirect here
this.router.navigate(response.url)
})
.catch(error => { console.log(error) });
}
注意:我不是100%确定如何从响应中获取URL,但我确信您可以在调试器中解决它: - )