【问题标题】:http-proxy-middleware does not forward any of the pathhttp-proxy-middleware 不转发任何路径
【发布时间】:2021-08-19 23:02:48
【问题描述】:

我正在尝试使用http-proxy-middleware 为我的 API 请求配置代理,create react app docs 建议这样做。我在setupProxy.js 文件中这样设置我的代理:

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
    app.use(
        createProxyMiddleware("/post", {
            target: 'https://postman-echo.com',
            changeOrigin: true,
            logLevel: 'debug'
        })
    );
};

然后,我对端点进行简单的 POST:

const response = await fetch("/post", {
  method: 'POST',
  headers: {
    'content-type': 'application/json;charset=UTF-8'
  },
  body: JSON.stringify({ foo1: "bar1", foo2: "bar2" })
});

console.log(await response.json());

根据 http-proxy-middleware 文档,我应该期望一个代理可以做这样的事情:

[HPM] POST /post -> https://postman-echo.com/post

但是,调试器显示的是:

[HPM] POST /post -> https://postman-echo.com

路径 /post 不会附加到代理请求。目标实际上应该是https://postman-echo.com/post。我的客户端收到 404 错误,因为 https://postman-echo.com 本身与后端的任何内容都不匹配。

如果它确实重新路由正确,我应该期待与 CURL 请求相同的结果

curl -X POST -F 'foo1=bar1' -F 'foo2=bar2' https://postman-echo.com/post

{"args":{},"data":{},"files":{},"form":{"foo1":"bar1","foo2":"bar2"},"headers":{"x-forwarded-proto":"https","x-forwarded-port":"443","host":"postman-echo.com","x-amzn-trace-id":"Root=1-61200c54-7b5809be3e78040f09edcd42","content-length":"240","user-agent":"curl/7.64.1","accept":"*/*","content-type":"multipart/form-data; boundary=------------------------bb54b419e41f4a4a"},"json":null,"url":"https://postman-echo.com/post"}%   

但是我 404 因为路径没有添加。为什么路径被遗漏了?

我创建了一个simple app 来重现我的问题。这看起来类似于this issue,但它们不一样(我使用的语法与答案建议的相同)。

【问题讨论】:

    标签: javascript node.js proxy http-proxy http-proxy-middleware


    【解决方案1】:

    我让它工作了。问题是我正在使用 404 的端点进行测试。我很困惑,因为调试器没有像文档所说的那样将 /post 附加到日志的末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 2020-03-26
      • 1970-01-01
      • 2017-03-05
      • 2017-12-08
      • 2021-03-31
      • 2021-04-08
      相关资源
      最近更新 更多