-1

jQuery ajaxプラグインを使用してAJAX呼び出しを行っており、成功ブロックで別のAJAX呼び出しを行います。何かのようなもの:

$.ajax({
    type: "GET",
    url: <someUrl>,
    data: {
        id: <someParam>
    },
    success: function (data) {
        $.ajax({
            type: "GET",
            url: <someOtherUrl>,
            data: {
                id2: <someOtherParam>
            },
            success: function (checkoutData) {
                //do something
            },
            error: function (request, status, error) {}
        });
    },
    error: function (request, status, error) {}
});

更新: コードは単なる疑似コードです。AJAX 成功ブロック内で AJAX を呼び出すという概念についてもっと心配しています。

自分のページに奇妙な動作があることに気付きました。最初の AJAX 呼び出しが URL の呼び出しに失敗することがあるようですが、エラーは返されません (エラー ブロックでキャッチしようとしました)。気をつけるべきことはありますか?

ありがとう、
イラクリス

4

3 に答える 3

0

AJAXは非同期であり、同期ではないため、奇妙です。completeの代わりに使用してみてくださいsuccess

var value = null;
$.ajax({
    type: "GET",
    url: <someUrl>,
    data: {
        id: <someParam>
    },
    success: function (data) {
        value = data
    },
    complete: function() {
      $.ajax({
            type: "GET",
            url: <someOtherUrl>,
            data: {
                id2: <someOtherParam>
            },
            success: function (checkoutData) {
                value = checkoutData
            },
            complete: function() {
                //process here
            },
            error: function (request, status, error) {}
        });
    },
    error: function (request, status, error) {}
});
于 2012-09-12T05:20:22.017 に答える
0

私があなただったら明示的に設定する 3 つのプロパティがあります。ajax GET を実行するときにそれらが存在しない (特に cache:false)と、奇妙な動作が発生することがあります。

dataType: "json",
contentType: "application/json;charset=utf-8",
cache:false

ここでは、json を送信し、json を応答として取得していると想定しています。

于 2012-09-12T05:29:49.590 に答える
0

ネストされた AJAX リクエストとは何の関係もないようです。ID とクラスの割り当てを間違えただけです。申し訳ありませんが、この質問への回答と努力に感謝します。

于 2012-09-12T07:14:26.080 に答える