2017-02-01 52 views
0
$.ajax({ 
            type: 'POST', 
            url: '/cart/add.js', 
            data: { 
             quantity: 1, 
             id: form_data 
            }, 
            success: function(response) { 
             console.log('in success'); 
             var url = $("#af-btn").attr("href"); 

             window.location.href = $("#af-btn").attr("href"); 
            }, 
            error: function(response) { 
             console.log(response + "in error"); 
             var url = $("#af-btn").attr("href"); 

             //window.location.href = $("#af-btn").attr("href"); 

            }, 
            complete: function(response) { 
             console.log(response); 
            } 
           }); 

以上是我的AJAX请求。以下是响应对象。
Object Response shows 200 OK response
添加到购物车,以显示匿名行为,有时候产品被添加,有时不添加产品。无法弄清楚。有任何想法吗?
下面是form_data
Form Data
我如何检索其值,
Ajax POST请求Shopify的/cart/add.js总是返回错误回调函数

var form_data = $('form[action="/cart/add"]').find('select[name="id"]').find(":selected").val(); 
+0

响应对象似乎是确定( statusText = ok,responseText是一个json字符串)...错误是什么? –

+0

错误回调函数中的代码总是被执行,而不是成功回调函数中的代码。 – awebartisan

+0

使用错误事件的其他参数以获取更多详细信息:替换“error:function(response){console.log(response +”in error“);”着: “错误:功能(响应,txtStatus,txtThrown){的console.log(txtStatus);执行console.log(txtThrown);}” –

回答

0

这是我如何解决它在Shopify应用程序通过Shopify管理员API脚本加入其脚本使用Shopify AJAX API标签。

1-负载Shopify jQuery的AJAX API包装

function loadShopifyAjaxApiScript() 
{ 

var script = document.createElement("script"); 
script.rel = "text/javascript"; 
script.src = "https://cdn.shopify.com/s/assets/themes_support/api.jquery-0ea851da22ae87c0290f4eeb24bc8b513ca182f3eb721d147c009ae0f5ce14f9.js"; 
document.getElementsByTagName("head")[0].appendChild(script); 

} 

2-然后使用它象下面这样:

  Shopify.addItem(variantId , 1 , function() { 
      console.log('success'); 
     }); 

资源链接:API jQuery Ajax Shopify Sandbox

1

标准的AJAX调用被扔的错误,我还有一个实例(甚至以为该产品被列入车) 。

所以相反,我使用他们的API进行AJAX调用。这里是所有功能的链接:http://mayert-douglas4935.myshopify.com/pages/api

例如添加项很简单的:

Shopify.addItem($productVal, $productQTY, function(){ 
    // Do Something here once the product is added 
    console.log('Success!!!') 
    }); 

PS:

有想法,你将需要包括此脚本为了访问到呼叫:

{{ 'api.jquery.js' | shopify_asset_url | script_tag }} 
+0

我可以在任何地方使用他们的jquery吗?因为我没有开发shopify主题,我正在开发一个使用PHP的应用程序。 – awebartisan