我正在使用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>
答案 0 :(得分:2)
这不会起作用。
跨域Ajax请求不起作用,不允许。您只能将请求发送到您自己的域名,并且无法将ajax请求发送到另一个域。
如果您使用的是ASP.NET,可以试用HtmlAgilityPack!
实际上/cart/add.js
意味着它会指向您自己网站的文件夹cart
和add.js
文件。这样你就可以添加组件了!在此方法中,来源相同,您的请求将通过您的网站进行,并将发送到您的网站。
如果要将数据保存在其网站上,则需要对数据使用HTTP POST请求。然后在那里做编码,然后回复一下!或者使用插件。
以下是跨域教程的一些主要文章:
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(在这里了解,允许哪些请求以及哪些内容会失败)