2011-03-07 31 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); });