以下不是跨域问题,但它闻起来像是一个。
所以这是我的设置(这很快让我变灰):
我有一个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中尝试了另一个域,并得到了相同的结果。
有人能告诉我到底是怎么回事吗?
答案 0 :(得分:0)
您是否尝试过$ .getJSON调用?
$.getJSON('config.json', null, function(data) { alert(data); });