未捕获的引用错误:Braintree未定义
我正在使用django框架1.6.2,eclipse 3.8.1,python 2.7.5。
我按照这个链接的示例程序来做测试,但不幸的是,我遇到了问题。不过在不使用eclipse的情况下,它运行得很好。请帮帮我,你们的帮助我非常感激。
客户端问题:
代码是
<html>
<head>
</head>
<body>
<h1>Braintree Credit Card Transaction Form</h1>
<div>
<form action="/create_transaction" method="POST" id="braintree-payment-form">
<p>
<label>Card Number</label>
<input type="text" size="20" autocomplete="off" data-encrypted-name="number" />
</p>
<p>
<label>CVV</label>
<input type="text" size="4" autocomplete="off" data-encrypted-name="cvv" />
</p>
<p>
<label>Expiration (MM/YYYY)</label>
<input type="text" size="2" data-encrypted-name="month" /> / <input type="text" size="4" data-encrypted-name="year" />
</p>
<input type="submit" id="submit" />
</form>
</div>
<script src="https://js.braintreegateway.com/v1/braintree.js"></script>
<script>
var braintree = Braintree.create("YourClientSideEncryptionKey");
braintree.onSubmitEncryptForm('braintree-payment-form');
</script>
</body>
</html>
错误是
Uncaught ReferenceError: Braintree is not defined
服务器端问题:
代码是
import braintree
braintree.Configuration.configure(braintree.Environment.Sandbox,
merchant_id="use_your_merchant_id",
public_key="use_your_public_key",
private_key="use_your_private_key")
错误是
Undefined variable from import:Sandbox
3 个回答
0
把需要Braintree脚本正常加载的代码移动到一个
$( window ).load(function() {}
里面,对我来说是有效的。
1
我通过把代码改成
src="https://js.braintreegateway.com/v2/braintree.js"
来解决这个问题。否则的话,似乎只有Braintree在v1这个命名空间下可用。
5
我使用了v2脚本,但还是遇到了同样的错误。问题出在异步加载脚本上。你的脚本braintree.js还没有加载完成,但下一个脚本已经开始执行了,所以你看到的错误是braintree没有定义。
为了解决这个问题,我使用了jQuery的getScript方法,并在回调函数中执行第二部分代码。
<script>
$.getScript( "https://js.braintreegateway.com/v2/braintree.js", function() {
var clientToken = "myTokenClient";
braintree.setup(clientToken, "dropin", {
container: "payment-form"
});
});
</script>