jQuery $ .get加载相对数据但不执行回调

时间:2011-03-07 09:57:29

标签: jquery jquery-callback

以下不是跨域问题,但它闻起来像是一个。

所以这是我的设置(这很快让我变灰):

我有一个index.html文件正在加载一个名为config.json的平面文件,该文件位于index.html旁边。我已经使用了$(document).ready()和window.addEventListener('load'...来做到这一点:

$(document).ready(function(){
    $.get('config.json', function(data){
        alert('asd');
    })
});

警报几乎永远不会触发。这种情况发生在Chrome 9和Firefox 3.6和FF4中。没试过其他浏览器。我查看Firebug和网络选项卡下的开发控制台,我可以看到config.json加载。它有正确的标题(application / json)。所以数据正在加载,但回调函数不会触发。

然而,在Firefox中,如果我以快速双模式(如心跳)刷新,那么偶尔我的警报会触发。我只能让Firefox在3.6中做到这一点,所以我假设它是因为js引擎比v4和Chrome慢一点。

最重要的是,它变得更加陌生。如果我在同一个域上设置config.json的完整路径,则无法加载。如果我将config.path设置为http://localhost/config.json并从http://local.mac.com/我的警报FIRES访问该网站!如果我从localhost切换域和访问权限并使用http://local.mac.com(或abcdef.com)来获取config.json,那么它也会被激活。

我在/ etc / hosts(mac)中设置了“local.mac.com”域,因此我可以使用该域而不是localhost来测试站点。我还在“abcdef.com”的/ etc / hosts中尝试了另一个域,并得到了相同的结果。

有人能告诉我到底是怎么回事吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过$ .getJSON调用?

$.getJSON('config.json', null, function(data) { alert(data);  });