【问题标题】:Flask-Socket.IO CORS issueFlask-Socket.IO CORS 问题
【发布时间】:2015-12-19 11:54:04
【问题描述】:

我在使用 socket.io 连接到我的 Flask 应用程序时遇到此错误

GEThttp://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1450525025659-286Request.create@socket.io.js:2919Request@socket.io.js:2842XHR.request@socket.io.js:2773XHR.doPoll@socket.io.js:2803Polling.poll@socket .io.js:3192Polling.doOpen@socket.io.js:3136Transport.open@socket.io.js:2313Socket.open@socket.io.js:1743Socket@socket.io.js:1625Socket@socket.io.js :1560Manager.open.Manager.connect@socket.io.js:299(匿名函数)@socket.io.js:564 :3004/:1 XMLHttpRequest 无法加载 http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1450525025659-286。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:3004' 不允许访问。响应的 HTTP 状态代码为 500。

我试过这个解决方案

@app.after_request
def add_cors(resp):
    resp.headers['Access-Control-Allow-Origin'] = request.headers.get('Origin','*')
    resp.headers['Access-Control-Allow-Credentials'] = 'true'
    resp.headers['Access-Control-Allow-Methods'] = 'POST, OPTIONS, GET'
    resp.headers['Access-Control-Allow-Headers'] = request.headers.get(
    'Access-Control-Request-Headers', 'Authorization')
    return resp

但它没有工作。 我也试过 Flask-Cors 模块

CORS(app, resources={
    r'/*/*': {
        'origins': '*',
        'allow_headers': ['Content-Type', 'Authorization']
    }
})

而且没有收获。 任何帮助将不胜感激

【问题讨论】:

  • 由于其他一些错误,您的标题没有通过 - The response had HTTP status code 500 - 其他错误
  • 500 是由于 CORS,这就是问题
  • 服务器发出错误500——服务器没有CORS问题,客户端有CORS问题——500状态与CORS无关,查一下跨度>

标签: javascript flask socket.io flask-socketio


【解决方案1】:

这是 socket.io-client 库问题。我按照 Flask-Socket.IO 文档的建议使用 v1.3.7,但它不起作用,但更改了 socket.io-client.js 效果很好。

http://flask-socketio.readthedocs.org/en/latest/#upgrading-to-flask-socketio-1-x-from-older-releases

从旧版本升级到 Flask-SocketIO 1.x

在客户端,您需要将 Socket.IO Javascript 客户端从 0.9.x 版本升级到 1.3.x 或更新版本。

但我不知道为什么它对我不起作用,因为我使用的是 Flask-SocketIO==1.2socket.io-client@v1.3.7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 2017-04-19
    • 2021-05-09
    • 2023-03-28
    • 2021-04-10
    • 1970-01-01
    • 2021-10-11
    • 2021-04-06
    相关资源
    最近更新 更多