0

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);
                });
            }
        }
    });
};
4

0 に答える 0