我有一个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
作为端口号?
答案 0 :(得分:5)
constructor(private location:Location, private locationStrategy:LocationStrategy) {}
someMethod() {
var base = this.locationStrategy.getBaseHref();
// replace port
this.location.prepareExternalUrl(base + 'xxx');
}
您可以在转发到Http
的服务中实现此功能,因此您无需重复此操作。
(未经测试)