在Angular4-5中实现代理服务器

时间:2018-04-25 11:27:52

标签: angular angular-cli angular5

问题陈述:使用angular-cli和Angular-5开发的客户端/用户界面,用户界面正在 http://localhost:4200 上运行我们在 http://localhost:8000 上运行后端服务器,这意味着所有api都会调用http://localhost:8000/users/getuserinfo并正确返回一些json数据。还有其他路线,例如 http://localhost:8000/student/getresult 等。

所以我必须为此创建代理,因为我在http://localhost:4200上的浏览器中运行ng serve我的应用程序,但同时调用api的url表单,如http://localhost:4200/users/getuserinfo返回结果像404即找不到,但当我在http://localhost:8000/users/getuserinfo的另一个标签中点击url时,它返回json数据。

所以我需要为http://localhost:4200/users/getuserinfo创建代理,使其像http://localhost:8000/users/userinfo一样。我尝试使用DOCS实现但没有成功,也不知道如何在proxy.conf.json文件中获取所有api,有人可以帮助我吗?

以下是我的代码,

{
   "/users/userinfo": {
   "target": "http://localhost:8000",
   "secure": false
   }
}

1 个答案:

答案 0 :(得分:1)

为api定义代理文件,并使用以下命令启动服务器:

ng serve --proxy-config proxy.conf.json

proxy.conf.json

{
  "/users": {
    "target": "http://localhost:8000",
    "secure": false
  }
}

我发现使用/api为我的所有api路由添加前缀更容易。这使得在生产中提供应用程序时更容易,因为您可以在不以/api开头的所有路由上返回应用程序,并且它使代理配置同样简单,因为您只需设置一个规则而不是可能多次使用您当前的状态。