应用程序引擎,Flask Socketio服务器Cors_Allowed_Gorigins标头丢失



当我试图从客户端向部署在应用程序引擎上的socketio flask服务器发送请求时,我收到以下错误:

已被CORS策略阻止:请求的资源上不存在"Access Control Allow Origin"标头。

我确实在我的python服务器脚本中放了以下行:

socketio = SocketIO(app, cors_allowed_origins='*')

我还添加了愚蠢的行:

CORS(app)

我做错了什么?

我试着用url处理程序的Allow_cors_origin更改app.yaml,安装flask cors包,但什么都不起作用

编辑:调试时,我在应用程序引擎中发现了以下消息:

{"text有效载荷":"客户端正在使用不受支持的套接字版本。IO或引擎。IO协议(该错误的进一步发生将用级别INFO记录(";,"insertId":"5fca5af900064b8faf6f9267〃;,"资源":{"类型":"gae_ app";,"标签":{"module_id":"默认";,"project_id":"岛屿之战";,"版本id":"20201204t174848〃;,"区域":"欧洲西部6-3";}},"时间戳":"2020-12-04T15:51:21.412559Z";,"标签":{"clone_id":"00c61b117cf0689fb08fabba9037f4624c77b480da8e9472be2b0038e0fe7d8dcac81021c";},"logName":"项目/岛屿战斗/日志/stderr";,"receiveTimestamp":"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-shocktio-4.3.2蟒蛇引擎-3.14.2蟒蛇套接字-4.6.1

这里得出了类似的结论:https://github.com/miguelgrinberg/Flask-SocketIO/issues/1432https://github.com/juharris/switch-remoteplay/issues/37

此错误是由不支持的Socket IO版本引起的。我想你使用的是最新版本,然而,应用程序引擎通常需要一些时间来支持最新版本。尝试将其降级为v3.x,甚至可能是v2.x。

您可以使用$ pip install <PACKAGE>==<VERSION>安装特定版本的软件包,在这种情况下,例如:$ pip install python-socketio==3.1.2

Bycors_allowed_origins选项

对于examplehttp://127.0.0.1:8283,server.py脚本

sio = socketio.Server(cors_allowed_origins='http://127.0.0.1:8283')

相关内容

最新更新