部署Flask API到Vercel时routes[0].headers非对象错误求助
Flask API部署Vercel的CORS与routes.headers错误解决
问题原因
你在vercel.json的routes里把headers写成了数组格式,但Vercel的路由配置要求headers必须是键值对对象,这就是触发routes[0].headers不是对象报错的原因。
修正后的vercel.json配置
把headers从数组改成键值对对象即可解决:
{ "version": 2, "builds": [ { "src": "./index.py", "use": "@vercel/python" } ], "routes": [ { "src": "/(.*)", "dest": "/", "headers": { "access-control-allow-origin": "*", "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS", "access-control-allow-headers": "Content-Type" } } ] }
更稳妥的替代方案(推荐)
直接在Flask代码中处理CORS,避免依赖Vercel配置:
- 安装
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('/') def hello(): return {"message": "Hello World"} if __name__ == '__main__': app.run()
内容的提问来源于stack exchange,提问作者harshraoka
相关产品推荐
相关产品推荐

