【发布时间】: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