-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

似乎它与嵌套的 AJAX 请求无关。这只是错误分配的 ID 和类的组合。我的错,我很抱歉,我感谢大家的回答和你在这个问题上付出的努力。

于 2012-09-12T07:14:26.080 回答
0

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

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

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

于 2012-09-12T05:29:49.590 回答