如何使用angular2的http与应用程序主机端口之外的其他端口?

Mic*_*lus 4 asp.net http angular

我有一个ASP.NET解决方案,包含一个托管我的angular2应用程序的web项目和一个web api项目.

这两个项目都设置为启动项目,并在不同的端口上运行(45365用于Web项目和20234Web api项目).

假设我有一个web api控制器,/api/values它可以显示当前可以访问的内容http://localhost:20234/api/values

如何在我的angular2网络应用程序中访问它?如果我试试

this.http.get("api/values")
Run Code Online (Sandbox Code Playgroud)

它试图访问http://localhost:45365/api/values不需要的东西.不过,我想它来调用http://localhost:20234/api/values,而无需指定整个URL包括域名,使即使该应用程序发布到公共服务器比其他领域我的售后服务工作localhost.

如何判断http.get()使用20234端口号?

Gün*_*uer 5

constructor(private location:Location, private locationStrategy:LocationStrategy) {}

someMethod() {
  var base = this.locationStrategy.getBaseHref();
  // replace port

  this.location.prepareExternalUrl(base + 'xxx');
}
Run Code Online (Sandbox Code Playgroud)

您可以在转发的服务中实现此功能,Http因此您无需重复此操作.

(未测试)