2011-02-08 40 views
1

没关系,我刚才发现CakePHP必须重新设置cookie,因为它过期了。如果您遇到同样的错误,只需使用Firebug =>“Set-Cookie”检查返回标题。Cakephp -Jquery JSOn Ajax调用在空闲时间后不会发送任何数据


我有一个要求与阿贾克斯CakePHP的功能,并将它作为一个JSON jQuery函数:

$('#categories a').live('click', function() { 
    catid = $(this).attr('id'); 
    load_notes(catid); 
    return false; 
}); 

function load_notes(catid){ 
    $.ajax({ 
      type: 'POST', 
      url: '/notes/load_notes', 
      data: 'category_id='+catid, 
      dataType: 'json', 
      success: function(data){ 
       jQuery.each(data, function(i) { 
        new_note = ''; 
        new_note = build_note(this.Note.id, this.Note.content); 
        new_note.appendTo('#notes').hide().fadeIn(i*300); 
        //new_note.appendTo('#notes').hide().fadeIn(1000); 
        //new_note.appendTo('#notes'); 
       }); 

      }, 
      error:function(httpRequest, textStatus, errorThrown) { 
       alert("status=" + textStatus + ",error=" + errorThrown); 
      } 
     }); 
} 

“load_notes”被称为后的文件已经准备好,如果我点击一个类别 - 链接。当我刚刚加载页面或在几分钟后点击分类链接时,此功能正常工作。但是当我等待大约30分钟并开始播放功能时,没有任何东西会被返回(因此无法显示音符)。 只有当我重新加载页面,该功能再次正常工作。

我通常得到的JSON阵列作为响应(与萤火虫检查),但是当发生错误,我只得到:

“j是零”的HandleError(α=对象{ URL =”/notes/load_notes“,global = true, more ...},b = XMLHttpRequest onreadystatechange = [xpconnect wrapped nsIDOMEventListener],readyState = 4, more ...},d =”success“,e = null)

任何线索可能导致这种情况的原因是什么?任何人都有类似经历吗

+0

这是ajax调用附加到DOM对象?例如,如果你只是在一个普通的$(document).ready(function(){... wrapper)中包含这个代码,它将在dom完成加载时执行。但是,如果你将它附加到$ 'a')。click(function(){$ .ajax({...然后每次点击链接时它会被触发。 – Adam

回答

0

这似乎是一个萤火虫问题,而不是jQuery。有时(完全随机)我会遇到与萤火虫相同的错误,并在重新启动浏览器时解决。

也许是一个愚蠢的问题,但..你有没有尝试与其他浏览器/游戏机?使用Chrome我没有再次遇到这个问题。