已配置Flask CORS仍遇跨域错误:请求被阻止问题求助
解决Flask配置CORS后仍报错的问题
可能的原因及解决步骤:
确认flask-cors安装状态
先执行pip install flask-cors确保安装了最新版本,旧版本可能存在配置兼容问题。调整CORS配置参数
将origins改为列表形式,同时显式开启凭证支持(如果需要),修改后端CORS初始化代码:CORS(app, origins=["http://localhost:3000"], supports_credentials=True)或者用
resources参数精准指定路由的跨域规则:CORS(app, resources={r"/": {"origins": "http://localhost:3000"}})移除路由中手动声明的OPTIONS方法
flask-cors会自动处理预飞行OPTIONS请求,无需在路由里手动添加,修改路由代码:@app.route('/', methods=['POST']) def handle_example(): if request.method == 'POST': data = request.json name = data.get('name') return "hello"手动添加响应头验证
可以临时在响应中手动添加跨域头,确认是否是配置生效问题:from flask import make_response @app.route('/', methods=['POST']) def handle_example(): if request.method == 'POST': data = request.json name = data.get('name') resp = make_response("hello") resp.headers['Access-Control-Allow-Origin'] = 'http://localhost:3000' return resp
验证修改
重启Flask服务后重新发起前端请求,查看控制台是否仍有CORS错误。如果问题依旧,打开浏览器开发者工具的网络面板,检查OPTIONS请求的响应状态码和响应头是否包含Access-Control-Allow-Origin。
内容的提问来源于stack exchange,提问作者codeaholic
相关产品推荐
相关产品推荐

