使用Flask的Nginx中的SocketManagement为什么会阻塞CrossOrigin请求?

2020-11-25 10:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过Nginx和Unicorn在Flask SocketIO中创建一个套接字。以下配置适用于不使用Nginx的localhost。在

当我在Chrome中通过Nginx访问web应用程序时,我得到一个错误:

Failed to load resource: Could not connect to the server. http://52.34.18.48:6419/socket.io/?EIO=3&transport=polling&t=1454455363683-6

当我在Firefox中通过Nginx访问web应用程序时,我得到一个错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://52.34.18.48:6419/socket.io/?EIO=3&transport=polling&t=1454464333740-25. (Reason: CORS request failed).

这是我在JavaScript中初始化套接字连接的方法:

import io from "socket.io-client"

const socketUrl = 'http://' + document.domain + ':6419' + '/FlaskApp'
const socket = io(socketUrl);

export default socket;

我的Nginx配置文件如下所示:

^{pr2}$

我使用的Gunicorn命令是:

gunicorn --worker-class eventlet -w 1 -b 127.0.0.1:6419 flask_app:application

我像这样把插座包在烧瓶里。在

from flask_app import application
from flask_socketio import SocketIO

socketio = SocketIO(application)

为什么我通过Nginx而不是通过localhost连接时得到这个错误?如何访问插座.io通过Nginx正确吗?在