Uncaught ReferenceError: Stripe is not defined - 条纹错误

新手上路,请多包涵

我正在尝试将 Stripe 元素实现到我的 Rails 应用程序中,但我似乎无法正确包含 stripe.js。这是我的 application.html

 <%= tag :meta, name: "stripe-key", content: Figaro.env.stripe_publishable_key %>
<script type="text/javascript" src="https://js.stripe.com/v3/"</script>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>

JS

 var stripe = Stripe($("meta[name='stripe-key']").attr("content"))
var elements = stripe.elements();

var card = elements.create('card', {
  style: {
    base: {
      iconColor: '#999',
      color: '#505652',
      lineHeight: '40px',
      fontWeight: 300,
      fontFamily: 'Helvetica Neue',

      '::placeholder': {
        color: '#CFD7E0',
      },
    },
  }
});
// Add an instance of the card UI component into the `card-element` <div>
card.mount('#card-element');

形式

<form action="/charge" method="post" id="payment-form">
  <div class="form-row">
    <label for="card-element">
      Credit or debit card
    </label>
    <div id="card-element">
    </div>
    <div id="card-errors"></div>
  </div>

  <button>Submit Payment</button>
</form>

每次加载页面时,我都会在控制台中收到此错误 Uncaught ReferenceError: Stripe is not defined - STRIPE ERROR 。我认为这与我加载 stripe.js 的方式有关,但我不确定?

原文由 Bitwise 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 864
2 个回答

我怀疑正在发生的事情是 Stripe.js 在您自己的 javascript 之后加载。尝试在标头中将 Stripe.js 移动到您自己的 javascript 之上。

原文由 Juanse Cora 发布,翻译遵循 CC BY-SA 3.0 许可协议

Stripe.js 现在在所有其他脚本之后加载,这意味着它不再立即可用。我已将脚本从 body 标签移动到 head 标签。

  <head>
   <script src="https://js.stripe.com/v3/"></script>
 </head>

原文由 mani gujjula 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题