0

我遇到了一个特殊的问题,其中使用了两个单独创建的 $.ajax 函数,它们的 url 完全不同,但由于某种原因,返回的数据对象似乎被合并了。

window.setInterval这两个函数在不同的计时器中分别独立地调用。两个 ajax 代码块都放在不同的函数中。

当在$.each(data, function(i, item)ajax #2 的成功条件下调用该函数时(我只使用each来调试),警报框会输出所有数据,包括来自 ajax #1 的数据。因此,应该只从 ajax #2(用户名、图片、性别)返回的数据对象也从 ajax #1 输出数据对象的属性。

由于两个数据对象都具有“成功”属性,并且由于我使用成功 ==“1”作为其他操作的条件,因此这个问题正在破坏我的程序。例如,如果 ajax #1 返回“data.success = 1”,这似乎会触发if(success == 1){ loop through data }in ajax #2,这绝对不应该发生。

阿贾克斯#1:

function getClientProfile(){
    var url = "http://www.mydomain.com/a_folder/getClientProfile.php?callback="+callback;
    $.ajax({
    type: "GET",
    url: url,
    async: true,
    dataType: 'jsonp',
    jsonpCallback: callback,
    success: function(data) {
       if(data.success == "1"){
           secret = data.secret;
           email = data.email;
           timezone = data.timezone;
           events = data.events;
           links = data.links;
           website = data.website;
           domain = data.domain;
           address = data.address;
       }
    },
    error: function (){
          //alert("flub: " + url);
    }
  });
}

阿贾克斯#2:

function getLoggedDate() {
    var url = "http://www.mydomain.com/a_folder/getloggeddata.php?callback=" + callback;
    //alert( url );
    $.ajax({
        type: "GET",
        url: url,
        async: true,
        dataType: 'jsonp',
        jsonpCallback: callback,
        success: function (data) {
            if (data.success == "1") {
                $.each(data, function (i, item) {
                    alert("success: " + i + " = " + item);
                });
            }
        }
    });
};
4

0 回答 0