Flask-Socket.IO CORS问题

问题描述 投票:-1回答:1

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

获取http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1450525025659-286 Request.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”标头。因此,不允许访问源“ 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']
    }
})

也没有收获。任何帮助,将不胜感激

javascript flask socket.io flask-socketio
1个回答
0
投票

这是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.2[email protected]]时为什么它对我不起作用

© www.soinside.com 2019 - 2024. All rights reserved.