【问题标题】:create-react-app proxy api requests behind a corp proxycorp 代理后面的 create-react-app 代理 api 请求
【发布时间】:2018-07-18 18:05:14
【问题描述】:

这是我的情况,

我正在公司防火墙后面创建一个反应应用程序。我的 api 服务器在不同的位置远程运行。如何在 package.json 中设置我的代理,以便我可以通过 corp 代理访问 api 服务器?

到目前为止我尝试过的配置是这样的:

"proxy" : { 
     "/api/" : {
          "target" : "http://****myapiserver.com",
          "changeOrigin" : true,
          "agent" : {
              "host" : "pathtoproxy.com",
              "port" : 80
           }
      }
 }

我尝试了其他几种组合也没有任何运气。我有什么遗漏或错误吗?

另外,我的 npm 已配置,因此它具有 http 和 https 代理设置。

【问题讨论】:

  • 您可以发布任何错误吗? Maby 尝试将"secure": false 添加到您的代理设置中。

标签: node.js reactjs npm create-react-app react-scripts


【解决方案1】:

好的,所以我通过编写自定义代理解决了这个问题 - 所以现在我有 3 个代理。

  1. React 代理 - 当浏览器调用 api 时会触发该代理。
  2. 我的自定义代理将请求从 React 应用的代理“传送”到 corp 代理。
  3. CORP 代理,它允许我访问我想要访问的 api 服务器。

    // React App's package.json  - runs on port 3000
    "proxy" : "http://localhost:3001"
    
    // myproxy.js - runs on port 3001
    var express = require('express')
    var request = require('request')
    
    const app = express();
    var serverRequest = request.defaults({'proxy':'http://path2.corp.proxy.com:port'})
    
    app.all('/', (req, res) => {
              let url = "http://myserver.com/api" + req.url
              req.pipe(serverRequest(url)).pipe(resp)
           );
    
    app.listen(3001);
    

一旦我有了这个,我将我的自定义代理启动为node proxy.js 然后我启动我的 react 应用程序,一切正常,我可以访问 api 服务器。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 2020-08-04
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多