Flask+React应用无法绕过CORS问题求助:已开放所有源仍报错
Flask + React 跨域(CORS)问题排查与解决
针对你用Flask-SocketIO启动服务仍出现CORS错误的情况,按以下步骤排查修复:
确保CORS配置覆盖SocketIO实例
普通的Flask-CORS初始化可能不会自动应用到SocketIO,需要在创建SocketIO对象时显式指定跨域参数:from flask import Flask from flask_cors import CORS from flask_socketio import SocketIO app = Flask(__name__) # 允许所有路由的跨域请求 CORS(app, resources={r"/*": {"origins": "*"}}) # 初始化SocketIO时指定允许的源(*表示所有源) socketio = SocketIO(app, cors_allowed_origins="*") # 你的业务路由、Socket事件处理代码... if __name__ == '__main__': socketio.run(app, debug=True)检查预检请求处理
避免自定义拦截OPTIONS请求的逻辑,Flask-CORS默认会自动处理预检请求,若有自定义中间件或路由,确保不会阻断OPTIONS请求的响应。核对请求地址一致性
React端发起请求的地址要和Flask服务的地址完全匹配,比如Flask运行在http://localhost:5000,React里就不能用http://127.0.0.1:5000,二者在CORS规则中会被判定为不同源。清除浏览器缓存测试
浏览器可能缓存了旧的CORS响应规则,用隐私模式打开页面或清空浏览器缓存后重新测试,排除缓存干扰。
内容的提问来源于stack exchange,提问作者Amir Doreh
相关产品推荐
相关产品推荐

