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

Stripe Elements加载自定义字体遇CORS错误,如何解决?

Stripe Elements自定义字体加载CORS报错解决方案

报错原因

你遇到的是浏览器同源策略下的CORS跨域访问限制:Stripe Elements组件运行在https://js.stripe.com域名的iframe环境中,当它请求你业务域名下的字体文件时,浏览器会校验字体资源的响应头是否允许跨域调用。目前你的字体文件响应头未携带Access-Control-Allow-Origin字段,因此请求被拦截。

解决方法

  • 方案1:配置静态资源服务器跨域规则

在你存放字体文件的静态资源服务中,为字体类资源添加跨域响应头,允许Stripe域名访问:

Access-Control-Allow-Origin: https://js.stripe.com
Access-Control-Allow-Methods: GET, OPTIONS

不同服务的配置方式可参考对应服务的静态资源跨域配置文档,比如Nginx可在server块中新增匹配字体后缀的规则,添加add_header配置;Apache可在.htaccess文件中新增Header规则。

  • 方案2:字体转base64内嵌使用

如果无法修改服务器配置,可以将AvenirNextLTPro-Bold.otf文件转换为base64编码,直接写入Stripe Elements的配置中,无需发起跨域请求:

const elements = stripe.elements({
  fonts: [
    {
      family: 'Avenir-Regular-Bold',
      src: 'url(data:font/otf;base64,替换为你的字体base64编码内容)'
    }
  ]
});

注意该方案会让配置体积增加约33%,仅适合小体积字体使用。

  • 方案3:使用支持跨域的公开字体CDN

如果你的字体有公开的CDN资源,且对应CDN已配置允许https://js.stripe.com跨域访问,可直接将src替换为CDN的字体地址即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:36:09