2017-02-01 7 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
匿名の動作を示すためにカートに入れると、製品が追加されることがあり、製品が追加されないことがあります。それを理解できません。何か案は?以下
は標準AJAXコールが(たとえ製品がカートに含まれていたと思った)つのインスタンスにだけでなく、私のエラーを投げていたform_data私はその値を取得する方法
Form Data

Ajax Shopifyの/cart/add.jsへのPOST要求がエラーコールバック関数で常に返る

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

レスポンスオブジェクトはOKのようです( statusText = ok、responseTextはjson文字列です)...エラーは何ですか? –

+0

エラーコールバック関数のコードは、成功コールバック関数のコードではなく、常に実行されます。 – awebartisan

+0

詳細については、エラーイベントに他のパラメータを使用してください。 "error:function(response){console.log(error" in error "); " –

答えて

0

:コールへのアクセスを持っているためタグ。

の1-ロードShopifyのjQueryのAjaxアピラッパー

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

です。

代わりに、私は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:

は、あなたがこのスクリプトを含める必要があります心を持っていますこれは私がそのスクリプトShopify管理APIスクリプトを通じて追加されましたShopifyアプリでShopifyのAjax APIを使用するためにそれを解決する方法です

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

どこでもjqueryを使用できますか?私はshopifyテーマを開発していないので、私はPHPを使用してアプリケーションを開発しています。 – awebartisan

関連する問題