缓存是我能想到的唯一解释。我正在使用 Stripe,并且我有以下 Javascript 来设置它:
$(function() {
console.log("Stripe: ");
console.log($('meta[name="stripe-key"]').attr('content'));
Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'));
issueOrder.setupForm();
});
当我直接访问我进行条带订单的页面(即,将确切的 URL 放在地址栏中)时,效果很好。console.log 记录我正在测试的内容,设置了条带令牌,并且付款顺利进行。
但是,当我从网站上以前访问过的页面访问该页面时(即单击付款页面的链接),没有记录任何内容并且未设置条带令牌,从而导致服务器端错误。
似乎javascript被调用了一次,但是当一个新页面被渲染时,它以某种方式识别出它已经被调用了,所以它不会再次调用javascript。不幸的是,Stripe 的可发布密钥没有被缓存,所以这会导致服务器端错误。我是否正确地考虑了这一点,如果是这样,我该如何解决?