GCP部署Flask API遇CORS跨域问题求快速解决方案
解决Flask API部署GCP后的CORS跨域问题
你遇到的是典型的跨域资源共享(CORS)问题,GCP存储桶的CORS配置仅针对对象存储服务,对你的Flask API无效,最快的解决方式是在Flask应用本身添加CORS支持,具体步骤如下:
安装Flask-CORS扩展:
在你的项目环境中执行命令:pip install flask-cors在Flask代码中配置CORS:
两种配置方式可选:- 全局允许所有来源(适合测试阶段):
from flask import Flask from flask_cors import CORS app = Flask(__name__) # 全局开启跨域支持 CORS(app) # 你的API路由示例 @app.route('/api/data') def get_data(): return {"message": "success"}- 指定允许的来源(生产环境推荐,更安全):
from flask import Flask from flask_cors import CORS, cross_origin app = Flask(__name__) # 仅允许指定域名跨域访问 CORS(app, origins=["http://localhost:3000", "https://your-production-domain.com"]) # 也可以单独给某个路由配置CORS @app.route('/api/protected') @cross_origin(origins=["http://localhost:3000"]) def protected_data(): return {"data": "protected content"}重新部署更新后的API到GCP:
如果用的是Cloud Run,重新构建镜像并部署;如果是App Engine,执行gcloud app deploy重新发布即可。
内容的提问来源于stack exchange,提问作者Revise
相关产品推荐
相关产品推荐

