You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Netlify部署应用后出现CORS错误,请求正确配置方案

解决Netlify Functions + FaunaDB生产环境CORS认证错误的配置方法

一、Netlify Function响应头的正确配置

手动添加响应头时容易遗漏关键字段,确保函数返回完整的CORS头部,尤其是认证相关的配置:

exports.handler = async (event, context) => {
  // 处理OPTIONS预请求,必须优先返回
  if (event.httpMethod === "OPTIONS") {
    return {
      statusCode: 200,
      headers: {
        "Access-Control-Allow-Origin": "https://your-site.netlify.app", // 替换为你的生产域名,不要用*
        "Access-Control-Allow-Headers": "Content-Type, Authorization", // 明确允许认证头
        "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
        "Access-Control-Allow-Credentials": "true" // 带认证凭证时必须设为true
      },
      body: ""
    };
  }

  // 处理FaunaDB业务逻辑...
  const responseData = await yourFaunaAuthLogic();

  return {
    statusCode: 200,
    headers: {
      "Access-Control-Allow-Origin": "https://your-site.netlify.app",
      "Access-Control-Allow-Headers": "Content-Type, Authorization",
      "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
      "Access-Control-Allow-Credentials": "true"
    },
    body: JSON.stringify(responseData)
  };
};
  • 生产环境禁止用*作为Access-Control-Allow-Origin,必须指定你的实际域名,避免安全风险。
  • 必须单独处理OPTIONS预请求,前端发起认证请求前会先发送OPTIONS,这一步不能执行业务逻辑,直接返回CORS头即可。

二、netlify.toml全局CORS补充配置

如果函数级配置未生效,在项目根目录的netlify.toml中添加全局规则:

[[headers]]
  for = "/api/*" # 匹配所有API路径
  [headers.values]
    Access-Control-Allow-Origin = "https://your-site.netlify.app"
    Access-Control-Allow-Headers = "Content-Type, Authorization"
    Access-Control-Allow-Methods = "GET, POST, OPTIONS"
    Access-Control-Allow-Credentials = "true"

[[redirects]]
  from = "/api/*"
  to = "/.netlify/functions/:splat" # 确保API路径正确映射到Netlify Functions
  status = 200
  • 确认生产环境API端点为https://your-site.netlify.app/api/xxx,与重写规则路径一致。

三、常见排查要点

  • 前端请求是否正确携带Authorization头:比如JWT需格式化为Authorization: Bearer <token>,且函数已允许该Header。
  • FaunaDB密钥是否在Netlify环境变量中配置:生产环境禁止硬编码密钥,在Netlify后台「Site settings > Environment variables」中添加。
  • 清除浏览器缓存:旧的CORS缓存可能导致测试异常,用无痕模式验证。

内容的提问来源于stack exchange,提问作者AgstAngelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:55:14