Angular4 +和Asp.NET Core具有重定向响应

时间:2018-03-16 16:23:14

标签: angular http asp.net-core url-redirection angular-services

我在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) });
  }

任何想法???

1 个答案:

答案 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,但我确信您可以在调试器中解决它: - )