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

时间:2019-08-07 14:58:48

标签: python flask flask-socketio

我有一个简单的Flask聊天应用程序,我正在从一个教程中进行测试。大概我只需要使用“ python app.py”命令来运行它,但是当我通过http://localhost:5000访问它时,我会得到一个连续的消息:

Console

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

来自 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>