Angular 通过直接使用URL将API请求代理到另一台服务器(或)的最佳方法是什么?

Angular 通过直接使用URL将API请求代理到另一台服务器(或)的最佳方法是什么?,angular,rest,api,Angular,Rest,Api,在Angular中,我了解到我们可以代理API请求,也可以直接使用URL而不使用任何代理配置。我学到的两种方法是: 带有代理: proxy.config.json package.json: 编辑包的“开始”。jsson "start": "ng serve --proxy-config proxy.conf.json", 无代理: 考虑使用任何服务文件进行REST API调用: user.service.ts @Injectable() 导出类用户服务{ 公众空气污染指数http://loc

在Angular中,我了解到我们可以代理API请求,也可以直接使用URL而不使用任何代理配置。我学到的两种方法是:

带有代理:

proxy.config.json

package.json:

编辑包的“开始”。jsson

"start": "ng serve --proxy-config proxy.conf.json",
无代理:

考虑使用任何服务文件进行REST API调用:

user.service.ts

@Injectable()
导出类用户服务{
公众空气污染指数http://localhost:8080';
构造函数(专用http:HttpClient){
}
getAllUsers():可观察{
返回this.http.get(this.API+'/users');
}
}
那么,以下哪种方法是正确的接近方法? 我们如何在生产型环境中使用它?
如果有任何其他此类替代方案,请让我知道。

该代理仅在由
ng serve
打开的开发模式下工作。对于生产模式,您需要使用Nginx、Apache或任何其他服务于Angular项目的web服务器应用程序执行相同的工作


如果您直接请求XHR呼叫,您应该处理CORS问题。所以我推荐前一个。

你能详细说明什么是Nginx、Apache吗?如果我直接调用XHR,我应该处理什么样的CORS问题?在运行
ng build
获得生产版本后,你需要一些服务。那东西可能是
ng serve
与那些web服务器对Node.js执行的操作相同,但仅用于开发目的。@ashfaquerie出于安全原因,浏览器只允许来自同一来源的请求。这里有更多的细节:)好的,这很有用。
"start": "ng serve --proxy-config proxy.conf.json",
@Injectable()
export class UserService {

public API = 'http://localhost:8080';
 constructor(private http: HttpClient) {
  }

  getAllUsers(): Observable<any> {
    return this.http.get(this.API + '/users');
  }

}