2011-03-07 92 views
0

以下内容不会作为跨域问题出现,但它看起来像一个。

因此,这里是我的设置(这是快速让我灰):

我有一个加载驻留旁边的index.html叫config.json平面文件index.html文件。我都用了$(文件)。就绪()和window.addEventListener( '负荷' ......要做到这一点:

$(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 en gine比v4和Chrome有点慢。

最后,它变得陌生。如果我在同一个域上设置了config.json的完整路径,则无法加载。如果我将config.path设置为http://localhost/config.json并从http://local.mac.com/访问该网站,我的警报会消失!如果我切换域并从本地主机访问,并且使用http://local.mac.com(或abcdef.com)作为config.json,它同样会出现。

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

There 必须是我刚刚失踪,因为它几乎凌晨2点我的时间,但我迷失了方向。有人能告诉我到底发生了什么吗?

+1

$ .get('config.json',{},function(data){}); – Wayne 2011-03-07 10:11:38

+0

您是否使用过使用JSON数据类型的$ .ajax方法?像这样:$ .ajax({url:'config.json',dataType:'json',data:{},success:function(data){alert('asd');}}); – betamax 2011-03-07 10:35:36

+0

@Wayne,你应该把它作为答案。 – 2011-03-07 11:04:51

回答

0

您是否试过$ .getJSON调用?

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