0

私はオープンカートを持っています。商品をカートに追加する関数 addToCart() は、通常のページでは正常に機能します。

関数addtoCart()をトリガーするボタンだけがあるカスタムページを作成しました。普通のボタンだけ…

通常のページ(機能する場所)では、通常の応答が得られます。

この画像のリンクを見てください: http://imgur.com/7M1AR1B,FKjiU05,9ggmiMR#2

3 番目の画像は実際に問題なく動作する投稿です。2 番目の画像は問題なく動作する RESPONSE です。最初の画像は、開いているカートのカスタム ページで取得した空の応答です。

なぜこれが起こっているのか分かりますか?

関数 addToCart() を使用し、そのカスタム ページでハード変数 FOR TEST を使用します。これは、変数が常に渡されることを意味します。ハード変数を使用するので、変数をコードに戻す方法を説明する必要はありません (同じように機能し、すべてをデバッグに渡します)。問題は、カスタムメイドのページでのみ「空の」応答が返されることです。応答: [] ...

function addToCart() {

    var product_id = 79;
    var quantity = 1;

    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: 'product_id=' + product_id + '&quantity=' + quantity,
        dataType: 'json',
        success: function (json) {
            $('.success, .warning, .attention, .information, .error').remove();

            if (json['redirect']) {
                location = json['redirect'];
            }

            if (json['success']) {
                $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

                $('.success').fadeIn('slow');

                $('#cart-total').html(json['total']);

                $('html, body').animate({
                    scrollTop: 0
                }, 'slow');
            }
        }
    });
}
4

2 に答える 2

0

試す可能性

  1. HTTPSから非HTTPS、またはその逆を使用する
  2. wwwをwww以外のドメインに使用する、またはその逆
  3. ページのレンダリングに使用しているドメインとは異なるドメインを使用する

上記のいずれも問題ではない場合は、リクエスト間の正確な違いを理解する必要がありますが、これは私がリストした3つの可能性の1つだと思います。

于 2013-02-13T00:42:32.780 に答える
0

問題は、必要な属性が1つもない製品を追加していたため、常に空の応答が返されたことです。opencart には、製品が属するストアを設定する必要がある属性があります。プログラムで製品をストアに追加する場合にその属性を設定しないと、製品は追加されますが、カートに追加することはできません。

于 2013-02-14T01:00:44.617 に答える