jQuery - 在AJAX调用的成功块中调用AJAX

时间:2012-09-12 05:04:50

标签: jquery ajax

我正在使用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) {}
});

UPDATE :代码只是伪代码,我更关心在AJAX成功块中调用AJAX的概念。

我注意到我的页面上出现了一些奇怪的行为。似乎第一个AJAX调用有时无法调用URL,但不会返回任何错误(我尝试在错误块中捕获它)。有什么我应该小心的吗?

谢谢,
伊拿克里斯

3 个答案:

答案 0 :(得分: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) {}
});

答案 1 :(得分:0)

如果我是你,我会明确设置三个属性。在执行ajax GET时,他们的缺席(特别是缓存:假)是有时导致奇怪行为的原因。

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

我在这里假设您正在发送json并将json作为回复

答案 2 :(得分:0)

好像它与嵌套的AJAX请求无关。它只是错误分配的ID和类的组合。我很抱歉,对此感到抱歉,我感谢大家的回答以及你对这个问题所付出的努力。