【问题标题】:Is there a reason http-proxy-middleware wouldn't proxy matching request?http-proxy-middleware 不会代理匹配请求是否有原因?
【发布时间】:2023-03-27 01:11:02
【问题描述】:

我有一个 create-react-app 前端,我需要在开发过程中代理并将源更改为我的 Flask socket-io 后端以绕过 CORS。我已经设置了我在过去的项目中成功完成的 http-proxy-middleware。我的 setupProxy.js:

const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function (app) {
    const wsProxy = createProxyMiddleware('/socket.io', {
        target: 'ws://localhost:5000/',
        changeOrigin: true,
        ws: true,
    });
    app.use(wsProxy);
};

在套接字设置期间我没有做任何特别的事情:

const ENDPOINT = 'http://localhost:5000/';
const socket = socketIOClient(ENDPOINT);

当我运行开发服务器时,它不会代理我的套接字 io 请求。我的服务器报告:

O _internal(113) _log(): 127.0.0.1 - - [04/Jul/2020 22:23:54] "GET /socket.io/?EIO=3&transport=polling&t=NCRjjNJ HTTP/1.1" 400 -
O server(333) handle_request(): http://localhost:3000 is not an accepted origin.

对我可能做错了什么有什么想法吗?

【问题讨论】:

    标签: flask create-react-app flask-socketio http-proxy-middleware


    【解决方案1】:

    你有没有在你的 Flask-SocketIO 服务器中配置跨域访问?将cors_allowed_origins='http://localhost:3000' 添加到您的SocketIO() 对象中,然后就可以了。

    【讨论】:

    • 这就是我的临时解决方案,我过去已经让 http-proxy-middleware 工作,并且真的很想弄清楚这个问题,以便开发更容易一些。
    • 您需要检查标题以查看错误在哪里。显然服务器正在接收端口 3000,但您的 changeOrigin 选项应该导致源位于端口 5000。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2023-03-26
    • 2020-03-02
    相关资源
    最近更新 更多