2017-09-25 139 views
1

我试图使用一个函数,在提交条带表单时发送ajax请求。我试过使用.submit(),它似乎没有做任何事情。这里就是我想:通过AJAX条带POST到烧瓶

HTML

<form action="/download_data" method="post" id="paymentForm"> 
        <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
         data-key="{{ stripe_key }}" 
         data-description="A Flask Charge" 
         data-amount="500" 
         data-locale="auto"> 
        </script> 
       </form> 

JS

$("#paymentForm").submit(function(event) { 
    window.alert("HELLO") 
    event.preventDefault(); 

    var $form = $(this), 
     url = $form.attr('action'); 

    var formdata = $form.serialize(); 
    console.log(formdata) 

    //AJAX will go here if I can get the function working 
}) 

而且我不认为这个功能甚至获取调用都让我有点停止增加它直到我以某种方式解决这个问题。任何帮助将不胜感激。谢谢!

+0

即使不调用preventDefault()。该帖子直接进入后端。我打算给它添加一个ajax调用,但看到函数没有被调用,我停下了。 –

+0

删除后再试一次,仍然没有。 –

+0

通过条纹checkout.js脚本生成表单内容。这基本上是我所做的减去javascript:https://stripe.com/docs/checkout/flask –

回答

0

您需要使用"custom integration"方法,以便您可以定义这就是所谓的结帐时创建令牌回调,然后你可以提交在AJAX请求令牌(或做任何你想要的):

var handler = StripeCheckout.configure({ 
    key: 'pk_...', 
    token: function(token) { 
    // Grab the token from `token.id` and send it in an AJAX request 
    } 
}); 

下面是一个基本示例:https://jsfiddle.net/ywain/ym0k4t9f/

+0

这就是我昨天做的事,所以我想我不妨选择这个。 –