我想创建一个angular.io应用程序,但其余的API应该从不同的服务器端口提供。
来自localhost的角度内容:4200,来自节点快速服务器的数据在localhost:3000上独立启动。 但是当我注入并使用' http'时,如何配置要使用的端口?
答案 0 :(得分:6)
以某种方式获取“正确”URL的解决方案无法正常工作 事实证明,这导致了一种情况,其中在休息服务器上看到http.put(...)作为OPTIONS请求。
Angular $http is sending OPTIONS instead of PUT/POST
我找到了一种工作方式,通过从角度服务器代理到其余服务器:
angular-cli server - how to proxy API requests to another server?
ng serve --proxy-config proxy.conf.json
proxy.conf.json:
{
"/api": {
"target": "http://localhost:3000",
"secure": false
}
}
答案 1 :(得分:5)
假设您正在使用Angular CLI来构建您的项目(我希望您是这样),您应该已经可以访问不同的环境设置。这些文件允许您轻松地为应用程序提供值,这些值可能会根据其运行位置而有所不同。
environment.ts
为您的环境值提供界面,然后environment.qa.ts
,environment.prod.ts
等(您可以根据需要创建任意数量的环境)允许您指定与之对应的不同值那个环境。
假设您的环境文件中有类似的内容:
export const environment = {
myEndpoint: 'localhost:3000'
}
您可以使用--env标志运行或构建应用程序以获取适当的值:
ng build --env=qa
访问env配置中定义的值很简单。在您的服务或组件中,只需为环境添加导入:
import { environment } from '../../environments/environment';
然后使用值:
this.http.get(environment.myEndpoint)
答案 2 :(得分:-1)
只需将其添加到网址
即可this.http.get('http://localhost:3000')