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

时间:2016-04-14 13:49:49

标签: asp.net http angular

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

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

假设我有一个公开/api/values的网络API控制器,目前可通过http://localhost:20234/api/values

访问

如何在angular2网络应用中访问此内容?如果我试试

this.http.get("api/values")

它尝试访问不需要的http://localhost:45365/api/values。但是,我希望它在不指定包含域的整个网址的情况下调用http://localhost:20234/api/values,即使应用程序发布到具有localhost以外的其他域的公共服务器,也可以使我的服务正常工作。

如何告诉http.get()使用20234作为端口号?

1 个答案:

答案 0 :(得分:5)

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

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

  this.location.prepareExternalUrl(base + 'xxx');
}

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

(未经测试)