更改package.json中的代理不起作用

时间:2018-10-06 05:44:19

标签: javascript reactjs web webpack nodes

我使用create-react-app创建了一个项目,该项目正在http://localhost:3000/上运行

当我想从我的应用程序向http://localhost:3090/发出请求时,我正在我的package.json文件中设置代理,该代理不起作用

componentDidMount() {
     fetch('/api/si')
      .then(response => {
        console.log(response);
        return response.json();
      })
}

package.json

"proxy":"http://localhost:3090/api"

在这里,我预期的呼叫是localhost:3090 / api / si,但它指向我的客户端服务器3000。我尝试了多种组合都没用


2 个答案:

答案 0 :(得分:1)

尝试从中删除/ api

&

否则尝试

"proxy":"http://localhost:3090/api"

}

更改其中之一

如果有多个代理,则可以执行以下操作:

componentDidMount() {
 fetch('/si')
  .then(response => {
    console.log(response);
    return response.json();
  })

答案 1 :(得分:0)

我也在这个问题上遇到麻烦,对我来说,解决方案是从fetch切换到axios(无论如何,我发现它是一个更友好的API)。

尝试这样的事情:

在您的项目根目录中:

npm install axios

在您的代码中:

import axios from "axios";

componentDidMount() {
     axios('/api/si')
      .then(response => {
        console.log(response);
        return response.json();
      })
}

注意:我尚未测试您的特定用例,因此,如果此方法不起作用,请提出修改建议。要点是,我的API请求从axios切换到fetch,这使我可以毫无问题地使用proxy中的package.json设置。