Ajax无法正常工作?使用jQuery获取链接,通过AJAX发送

时间:2015-03-16 20:20:57

标签: javascript jquery ajax woocommerce

我可以使用以下链接将产品添加到购物车:     <div id="add"><a id="add-link" href="http://example.com/cart/?add-to-cart=1127">Add to Cart</a>

我已经尝试在到达第7行时同时使用GET或POST但是我没有收到产品被添加的警报,即使它在第6行检索到正确的URL。有人能告诉我什么是错的吗?帮助会很棒!

<script type="text/javascript">
$(document).ready(function(){
    $('a#add-link').click(function(event) { 
        event.preventDefault(); 
        var url = $(this).attr("href");
        alert("Now I want to call this page: " + url);
        $.post(url, function () {
            alert("Product added to cart");
        });
    });
}); 
</script>

2 个答案:

答案 0 :(得分:1)

您没有在发布请求的帖子中明确说明 - 也就是说,您是在域中还是在域外请求资源 - 但这是{的常见症状{3}}限制。

如果您的URL变量引用了您自己以外的域名,您可以打赌这是追求的方向。您可以通过放入引用本地资源的链接来测试它,然后尝试(它应该可以工作)

答案 1 :(得分:0)

因此,在脚本块中,您可以声明处理程序和函数:

$(document).ready(myMethod);
$(myButton).click(otherMethod);

function myMethod()
{
    //do some work
    //you can trigger another event in here
    $(myButton).click()
}

function otherMethod()
{
    //more work
}

现在,当文档发出信号表明它已准备好时,它将运行myMethod(),这会点击myButton元素,该元素有一个名为otherMethod()的事件处理程序。所以,只是通过文件说“准备好了!”它将启动这两个事件,它将比内联声明的函数更快地完成它。内联,JS必须在每次事件发生时重新编译该函数。将函数分离出来会导致它们在加载JS时只编译一次。

只要点击“添加到产品”链接,就会触发事件:

$('#add-link').click(addToCart);

function addToCart() //you can optionally get an event parameter in here as well
{
     event.preventDefault();
     var url = $(this).attr("href");
     alert("Now I want to call this page: " + url);
     $.post(url, function ()
     {
         alert("Product added to cart");
        //I'm not 100% on this, I don't use the jQuery .post method
     });
}