代理外部请求

时间:2018-08-01 11:12:59

标签: angular angular-cli webpack-dev-server

我正在尝试设置angular以代理外部API请求,而不是请求与运行/托管angular相同的基本网址的请求。

因此angular在http://localhost:4200/上运行,我希望代理捕获对http://foo.bar.baz:8080/api的请求

以下配置无效,并因以下错误而失败:

  

错误:[HPM]无效的上下文。预期类似:[“ / api”,“ / ajax”]或[“ / api / ”,“! .html”]

proxy.conf.json

{
  "http://foo.bar.baz:8080/api": {
    "target": "http://localhost:3000",
    "secure": false,
    "logLevel": "debug"
  }
}

我也尝试了"*/api/**": {,但是遇到了同样的错误。因此,看来网址必须以/

开头

我该如何前进?

-更新-

这是HttpClient请求:

this.http.get("http://foo.bar.baz:8080/api")...

2 个答案:

答案 0 :(得分:0)

类似的东西应该起作用:

{
    "/api": {
        "target": "http://localhost:3000",
        "secure": false,
        "logLevel": "debug",
        "changeOrigin": true,
        "pathRewrite": {
          "^/api": ""
        }
    }
}

更多信息here

答案 1 :(得分:0)

像这样修改代码

   {
      "/http://foo.bar.baz:8080/api":{
        "target":"http://localhost:3000",
        "secure": false,
        "logLevel": "debug"
      }
    }

像这样更改您的服务

this.http.get("./http://foo.bar.baz:8080/api")