GET /socket.io/?EIO=3&transport=polling&t=MniHjPM HTTP/1.1

GET /socket.io/?EIO=3&transport=polling&t=MniHjPM HTTP/1.1

我有一个简单的 Flask 聊天应用程序,我正在通过教程对其进行测试。据说我只需要使用 "python app.py" 命令 运行 它,但是当我通过 http://localhost:5000 访问它时,我会收到一条连续的消息:

我希望得到 200。我已经安装了 Flask、Flask-SocketIO 和 eventlet。有什么想法可以指出我正确的方向吗?谢谢。

当前版本的 Flask-SocketIO 对于跨源请求有更严格的要求。 添加 cors_allowed_origins='https://localhost 将解决错误。
IE。 SocketIO(app,cors_allowed_origins="http://localhost")
SocketIO(app,cors_allowed_origins="*") 希望这项工作。

Flask-SocketIO 文档中的代码也对我产生了同样的错误。 但是这个示例代码没有(也在调试模式下):https://github.com/miguelgrinberg/Flask-SocketIO

两者均不包括上述修复。 更改 HTML 脚本标签有帮助。

发件人:

<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>

收件人:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js" integrity="sha512-aMGMvNYu8Ue4G+fHa359jcPb1u+ytAF+P2SCb+PxrjCdO3n3ZTxJ30zuH39rimUggmTwmh2u7wvQsDTHESnmfQ==" crossorigin="anonymous"></script>