Rails jquery ajax调用没有触发

时间:2016-05-11 23:35:00

标签: javascript jquery ruby-on-rails ajax braintree-rails

我需要使用ajax获取braintree令牌,但它不会被触发。通常我会在新操作中生成令牌,但我的订单表单在列表显示页面中是部分的,因此我只有一个创建操作。 braintree dropin工作需要令牌。所以我认为我唯一的另一个选择是将ajax调用附加到结帐按钮,但它不会触发。非常感谢ajax无法正常工作的原因,甚至是获得令牌的更好方法

的routes.rb

 get '/token' => 'orders#token' 

然后在我的控制器中

class OrdersController < ApplicationController      

def token
    @token = Braintree::ClientToken::generate() 
    render json: @token
end 

在我的HTML中

<a class="btn btn-large waves-effect cyan waves-light modal-trigger" style="width: 300px;  margin-left: -65px;" id="btn-book" href="#modal1">Proceed to Checkout</a>


<script>
      $('#btn_book').on('click', function(e){
        e.preventDefault();

        $.ajax({
            type: 'GET',
            url: '/token',
            dataType: 'JSON',
            success: function(data){
                 console.log(data);
            },
            error: function(data){
                console.log('there was an error');
            }
        });

      });                        

</script>    

1 个答案:

答案 0 :(得分:1)

您的按钮的ID为btn-book,因此您应该使用$("#btn-book"),而不是$("#btn_book")