我遇到了一个特殊的问题,其中使用了两个单独创建的 $.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);
});
}
}
});
};