Flask Socket-io 与 react http-proxy-middleware 跨域问题
Flask Socket-io 后端路由为/socket.io
,使用 http-proxy-middleware 的在react中配置代理,转发到Flask地址+/socket.io
没有用,即使设置了changeOrigin,Socket-io还是可以检查到原来的origin。
proxy('/socket.io', {
target: 'http://127.0.0.1:5000/',
ws: true,
secure: true,
changeOrigin: true,
pathRewrite: {'': ''}
}),
可以看到还是被发现从3000发过来的了
需要在Flask允许该Origin建立的链接,SocketIO提供一个cors_allowed_origins
接口,该接口接收一个列表对象,列表内是字符串,设置被允许的跨域链接,如果设为空列表或者*
将允许所有跨域链接,但是这样容易收到跨域攻击。
socketio = SocketIO(app, cors_allowed_origins=['http://localhost:2000'])