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

为何Next.js 13中Stripe Webhook不受CORS影响,自定义接口却有问题?

为什么Stripe Webhook接口没有CORS问题,而你的Newsletter接口有?
  • CORS本质是浏览器的安全限制,只针对「从浏览器发起的跨域请求」生效,服务器与服务器之间直接发起的请求完全不受这个规则约束。
  • Stripe的Webhook回调是Stripe的后端服务器直接向你的app/api/webhook/route.ts发送请求,全程和浏览器无关,自然不会触发CORS检查,也就不会有跨域问题。
  • 你的app/api/newsletter/route.ts是被外部博客的前端(浏览器)调用的,属于「浏览器发起的跨域请求」,这时候浏览器会自动执行CORS安全校验,如果你的接口没配置允许该外部域名的跨域规则,就会抛出CORS错误。
  • 补充:Next.js App Router的API路由默认只允许同源请求,要支持跨域需要手动配置响应头,比如在接口里添加:
    export async function POST(request: Request) {
      // 允许指定域名跨域,生产环境不建议用*允许所有
      const response = new Response(JSON.stringify({ message: '操作成功' }), {
        headers: {
          'Access-Control-Allow-Origin': 'https://你的外部博客域名.com',
          'Access-Control-Allow-Methods': 'POST',
          'Access-Control-Allow-Headers': 'Content-Type',
        },
      });
      return response;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:16:00