Ajax和Shopify购物车

时间:2014-01-31 18:18:06

标签: jquery ajax shopify

我正在使用Shopify,我正在尝试使用Ajax将项目添加到购物车。这里的代码没有添加和项目到我的购物车。我花了5个小时试图解决这个问题,但没有雪茄:/

我在我的theme.liquid中包含了包装器。

这是我的代码:

<a class="chicken-fingers" onclick="fastcart('515257513','1')">Add to Cart</a>

  <script>  
  function fastcart(variantId, quantity){
  $.ajax({
  type: 'POST',
      url: 'http://name.myshopify.com/cart/add.js',
      data: 'quantity='+quantity+'&id='+variantId,
      dataType: 'json',
      success: function(response){
          $.ajax({
              type: 'GET',
              url: '/cart.js',
              dataType: 'json',
              success: function(cartdata){
                  $('.cart-total-items .count').html(cartdata.item_count);
                  $('.cart-total-price').html('$'+(cartdata.total_price/100).toFixed(2));

                }
            });
        }
    });
  }
 </script> 

1 个答案:

答案 0 :(得分:2)

这不会起作用。

跨域Ajax请求不起作用,不允许。您只能将请求发送到您自己的域名,并且无法将ajax请求发送到另一个域。

如果您使用的是ASP.NET,可以试用HtmlAgilityPack!

实际上/cart/add.js意味着它会指向您自己网站的文件夹cartadd.js文件。这样你就可以添加组件了!在此方法中,来源相同,您的请求将通过您的网站进行,并将发送到您的网站。

如果要将数据保存在其网站上,则需要对数据使用HTTP POST请求。然后在那里做编码,然后回复一下!或者使用插件。

以下是跨域教程的一些主要文章:

http://www.bennadel.com/blog/2327-Cross-Origin-Resource-Sharing-CORS-AJAX-Requests-Between-jQuery-And-Node-js.htm

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

http://www.codeproject.com/Articles/185506/AJAX-Cross-Origin-HTTP-request(这些家伙会帮助你很多)

https://en.wikipedia.org/wiki/Same-origin_policy(在这里了解,允许哪些请求以及哪些内容会失败)