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

React调用Beehiiv API遭CORS策略拦截,求助问题原因

问题原因及解决办法

核心原因

  1. 你在请求头里加的Access-Control-Allow-Origin: *完全无效——这个是服务器返回给浏览器的响应头,不是客户端发送的请求头,浏览器不会把它当作跨域校验的依据。
  2. Beehiiv API的服务器没有配置允许http://localhost:3000这个来源的跨域请求,所以浏览器收到响应后,发现没有符合要求的Access-Control-Allow-Origin头,直接拦截了数据。
  3. 其他API能正常调用,是因为它们的服务器配置了允许你的前端域名(或通配符*)的跨域响应头。

解决办法

  • 后端代理(推荐,适配生产+开发环境)
    让前端请求先发到自己的代理/后端服务,再由代理去调用Beehiiv API——后端之间的请求不受浏览器CORS限制。
    比如在React项目的package.json里添加代理配置:

    "proxy": "https://api.beehiiv.com"
    

    然后修改请求代码(删掉无效的请求头):

    async function makeRequest(){
      const fetchOptions = {
        method: 'get',
        headers: {
          "X-ApiKey": '<MY API KEY>',
          "Content-Type": "application/json"
        },
      }
      fetch('/v1/publications', fetchOptions)
        .then(response => response.json())
        .then(data => console.log(data))
    }
    makeRequest();
    

    生产环境需要搭建简单的后端服务(比如Node.js/Express)完成代理转发。

  • 检查API控制台配置
    登录Beehiiv开发者后台,查看是否有“跨域域名白名单”类的设置,若有则添加http://localhost:3000(上线后替换为正式域名),服务器会自动返回正确的CORS响应头。

  • 开发环境临时绕过(仅本地调试用)
    使用Chrome跨域插件(如Allow CORS: Access-Control-Allow-Origin)临时关闭浏览器的CORS校验,但该方法不能用于生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:55:24