如何在ajax函数中发布我的href值?

时间:2013-10-01 15:08:36

标签: javascript php jquery ajax

我正在尝试创建一个允许我使用ajax调用发布锚点href的操作。首先使用后端设置创建锚标记,这样它就不能在表单等内部,因此无法正常工作。

这是按钮的标记,href是用js:

动态添加的
<a class="js-add-to-cart button buying-options buy-button" data-products-in-cart="<?= $products_in_cart ?>">
                Select a size
            </a>

我目前正在使用此代码发布锚点:

jQuery(function(){
                jQuery('a.buy-button').click(function(event) {
                    event.preventDefault();
                    jQuery.ajax({
                        url: jQuery(this).attr('href'),
                        type: 'POST',
                        async: true,
                        beforeSend: function(){
                            jQuery('#result').hide();
                            jQuery('#ajax-loader').show();
                        },
                        error: function(xhr, status, thrown){
                            alert(xhr + ',' + status+ ',' + thrown);
                        },
                        complete: function(){
                            jQuery('#ajax-loader').hide();
                        },
                        success: function(data) {
                            jQuery('#result').empty().append(data);
                            jQuery('#result').fadeIn('slow');
                        }
                    });
                });
        });

它有效,但我唯一的问题是它基本上是一个获取请求,在标题网络响应中我得到了这个:

Network response

这不会发布添加到购物车网址并将产品添加到购物车。

有谁知道如何做到这一点?

干杯, 标记

2 个答案:

答案 0 :(得分:1)

尝试查看是否在PHP代码中实际触发了POST操作。好像应该有效。

'async'参数也是多余的,因为你已经调用了A-jax函数

答案 1 :(得分:0)

或许使用.post() shorthand会帮助您(并清理您的代码)。

我假设您没有使用jQuery的$别名,因为您不知道它,而不是因为任何冲突问题。

$(function(){
  $('a.buy-button').click(function(event) {
    event.preventDefault();
    $('#result').hide();
    $('#ajax-loader').show();
    $.post($(this).attr('href'), function (data) {
      $('#ajax-loader').hide();
      $('#result').empty().append(data);
      $('#result').fadeIn('slow');
    });
  });
});