我只有2年左右的网络开发经验,所以我可能会遗漏一些非常简单的东西....
我创建了一个沉重的javascript文件,我将其放入公司内部网的标题中。它使用jquery和ajax调用来创建类似于facebook或gmail的信使的信使。
当页面加载时,固定div会每20秒更新一次所有的消息。
这适用于Firefox和IE for XP,Vista,Windows 7,Mac OS 10.4(G4)。
在Mac OS 10.4(G5)和Mac OS 10.5(Intel)上,它无法按预期工作......
当页面加载时,firebug显示参数按预期传递并且响应按预期返回,但由于某种原因,firebug以红色显示调用,当然更改不会更新。这是代码:
function check_for_messages(){
// Takes care of IE's caching
var iedumb= d.getDate().toString() + d.getHours().toString() + d.getMinutes().toString() + d.getMilliseconds().toString();
// id is the user's id, page returns # of messages
$.ajax({
dataType: 'html',
url: url+'check_messages.asp?id='+$('#messenger-user-id').val()+'&iedumb='+iedumb,
success: function(data) {
if( parseInt(data) >= 0)
$('#messenger-new-messages').text("("+data+")");
}
});
d = new Date();
timer = setTimeout(check_for_messages, mil_seconds);
}
根据firebug,参数和响应看起来很好,但它似乎仍然无法正常工作。我也尝试过Safari,它给出了相同的结果。我怀疑这与用户偏好有关,但我真的不确定。这已经整整两天了,我没有想法。任何建议都将受到高度赞赏。
答案 0 :(得分:1)
我比较了浏览器之间的请求标头数据,并注意到'Referrer'不同。在工作浏览器上,引荐来源是http://ourintranetsite.com。在不起作用的浏览器上,引荐来源是http://。
我正在使用完整的URL路径来进行我的ajax调用,所以我将这些调整为相对而且引用都是正确的,一切正常。
有了这个,我很好奇为什么会这样?因为我有'http://'浏览器认为我试图从另一个域调用响应,因此是一个安全问题并且失败了吗?谢谢
答案 1 :(得分:0)
使用Safari的开发人员菜单和JS调试器查看是否有不同(可能更具启发性)的错误消息。 Safari浏览器/偏好/高级/