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

MVC项目弹窗加载支付局部视图时出现Stripe未定义错误

解决Uncaught ReferenceError: Stripe is not defined错误

你遇到的这个问题,核心原因是Stripe的外部脚本还没加载完成,你的初始化代码就先执行了——哪怕你把脚本标签写在了jQuery代码前面,外部脚本的加载是异步的,有时候会跟不上$(document).ready()的执行节奏。

下面给你几个实用的解决方案:

1. 确保脚本加载完成后再初始化

用jQuery的getScript方法动态加载Stripe脚本,这样能精准控制代码执行时机,只有脚本加载成功后才会初始化Stripe:

<script type="text/javascript">
$(document).ready(function () {
  $.getScript("https://js.stripe.com/v2/")
    .then(function() {
      // 这里要确认publishablekey变量已经正确定义且能访问到
      Stripe.setPublishableKey(publishablekey);
    })
    .catch(function(error) {
      console.error("Stripe脚本加载失败,请检查网络:", error);
    });
});
</script>

2. 先排查脚本是否真的加载成功

打开浏览器开发者工具(按F12),切换到Network标签页,刷新页面后搜索js.stripe.com:

  • 如果请求状态码是200,说明脚本加载正常,问题就出在执行时机上;
  • 如果是404或其他错误,大概率是网络环境无法访问该域名(比如内网限制)。

3. 检查全局变量的有效性

顺便确认下publishablekey这个变量是否在当前作用域能正常访问:比如有没有拼写错误(比如常见的驼峰写法publishableKey)、是不是定义在了全局作用域里——要是这个变量没定义,后续还会引发新的错误。

另外提一句,Stripe v2已经是旧版本了,官方现在主推v3版本,不过如果你暂时需要用v2,上面的方案完全适用。

内容的提问来源于stack exchange,提问作者V.Mulik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:56:04