2 つの別々に作成された $.ajax 関数がまったく異なる URL で使用されているという奇妙な問題がありますが、何らかの理由で返されたデータ オブジェクトがマージされているようです。
window.setInterval
両方の関数は、別々のタイマー内から別々に独立して呼び出されます。両方の ajax コード ブロックは、別々の関数に配置されます。
$.each(data, function(i, item)
関数が ajax #2 の成功条件で呼び出されると (私はデバッグにのみ使用します) each
、アラート ボックスは ajax #1 からのデータを含むすべてのデータを出力します。したがって、ajax #2 からのみ返されるデータ オブジェクト (ユーザー名、写真、性別) は、ajax #1 からのデータ オブジェクトのプロパティも出力しています。
両方のデータ オブジェクトに "success" プロパティがあり、success == "1" を他の操作の条件として使用しているため、この問題によってプログラムが壊れています。たとえば、ajax #1 が "data.success = 1" を返す場合、これはif(success == 1){ loop through data }
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);
});
}
}
});
};