基于Python的Google Cloud Functions持续出现CORS问题,即使使用官方示例
Python版Google Cloud Functions CORS错误修复方案
问题根源
你的请求是POST方法且携带了Authorization头,但原Cloud Functions代码的预检(OPTIONS)响应存在两个关键问题:
Access-Control-Allow-Methods仅允许GET,未包含POSTAccess-Control-Allow-Headers仅允许Content-Type,未包含请求中携带的Authorization头
修改后的Cloud Functions代码
import functions_framework @functions_framework.http def myFun(request): # 处理预检OPTIONS请求 if request.method == "OPTIONS": headers = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "POST, OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Authorization", "Access-Control-Max-Age": "3600", } return ("", 204, headers) # 处理主POST请求 headers = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type, Authorization" } # 可选:处理POST请求体,例如 # request_data = request.get_json() return ("Hello World!", 200, headers)
额外检查项
- 修改代码后必须重新部署Cloud Functions,确保新配置生效
- 确认Next.js端的axios请求确实正确携带了
Authorization和Content-Type头 - 生产环境建议将
Access-Control-Allow-Origin的*替换为你的Next.js域名,提升安全性
内容的提问来源于stack exchange,提问作者Hack-R
相关产品推荐
相关产品推荐

