python - 应用引擎,Flask-Socketio 服务器 Cors_Allowed_Origins header 丢失

标签 python google-app-engine flask socket.io flask-socketio

当我尝试从客户端向部署在应用程序引擎上的 socketio flask 服务器发送请求时,我收到以下错误:
已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin” header 。
我确实在我的 python 服务器脚本中加入了以下行:

socketio = SocketIO(app, cors_allowed_origins='*')
我还添加了以下行:
CORS(app)
我究竟做错了什么?
我尝试使用 url 处理程序的 Allow_cors_origin 更改 app.yaml,安装 flask-cors 包,没有任何效果
编辑:
我在调试时在应用引擎中发现以下消息:
{
"textPayload": "客户端正在使用不受支持的 Socket.IO 或 Engine.IO 协议(protocol)版本(此错误的进一步出现将使用级别 INFO 记录)",
"insertId": "5fca5af900064b8faf6f9267",
“资源”:{
“类型”:“gae_app”,
“标签”: {
"module_id": "默认",
"project_id": "海岛战",
"version_id": "20201204t174848",
“区域”:“欧洲西部 6-3”
}
},
“时间戳”:“2020-12-04T15:51:21.412559Z”,
“标签”: {
“clone_id”:“00c61b117cf0689fb08fabba9037f4624c77b480da8e9472be2b02038e0fe7d2d8dcac81021c”
},
"logName": "projects/island-battles/logs/stderr",
“接收时间戳”:“2020-12-04T15:51:21.465294012Z”
}
我该如何解决?谢谢
第二次编辑:
在我的本地版本中一切正常,问题出在应用引擎上

最佳答案

如果您使用的是 Flask-SocketIO,请确保安装兼容版本,最新版本与 python-socketio 3.1.2 不兼容,您将收到错误消息。
我跑了:

pip install python-socketio==3.1.2 
正如 Oliver 所建议的那样,但由于我有 Flask-SocketIO 5.0.1 版而出现错误,所以我运行了以下命令:
pip install flask-socketio==4.3.2
这解决了我的问题。
最终你会想要 flask-socketio-4.3.2 python-engineio-3.14.2 python-socketio-4.6.1
这里得出了类似的结论:
https://github.com/miguelgrinberg/Flask-SocketIO/issues/1432
https://github.com/juharris/switch-remoteplay/issues/37

关于python - 应用引擎,Flask-Socketio 服务器 Cors_Allowed_Origins header 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65144726/

相关文章:

python - 寻找具有最大函数值的列表的最佳组合

python - 如何使用 python 二进制路径在虚拟环境中执行 python 脚本?

google-app-engine - 有没有成功的基于 Windows Azure 的网站和 Web 服务?

python - 如何在我的网站上表示数据框?

javascript - 使用 Flask 在 Javascript 上提供 json 数据

python - flask WTForms : Difference between DataRequired and InputRequired

python - 将 pycassa 与 uwsgi 一起使用时的问题

python - 如何使用迭代函数按最小值排序?

google-app-engine - 将 google app engine 项目从 eclipse 导入到 intellij

java - GAE 从 Gmail 帐户发送电子邮件