2011-12-03 33 views
3

我開發了一個使用IE9和文本編輯器的Web應用程序。它讀取一個JSON文件,然後根據該文件以及JavaScript和jQuery代碼的邏輯填充一些DIV元素。在IE9下,它完美運行。

在Chrome瀏覽器,它無法執行$ .getJSON()語句,所以沒有數據可用。在FireFox下,$ .getJSON()語句顯然運行(警告消息證明了這一點),但它沒有讀取任何內容。

的JSON文件通過JSONLint。

無論是鍍鉻,也不火狐表示任何錯誤。

我做了使用從JSON網站JSON數據的樣本文件,驗證它通過JSONLint,然後使用該文件運行我的代碼。沒有區別 - Chrome仍然忽略$ .getJSON()語句。

的我的代碼相關的部分:

function buildTree(centralID) { 
     alert("Can we start, at least?"); 
    $.getJSON('sample.json', function(data) { 
     alert("first success"); 
     $.each(data.person, function(i, xdata) { 

瀏覽器顯示的第一個警報,但沒有第二個。

任何想法?

回答

2

您可以使用內置的誤差函數來顯示錯誤和調試。

$(document).ready(function(){ // Make sure your jQuery is inside this 
$.getJSON("sample.json", function(data) { 
    alert('Point 1 Reached.'); 
    console.log(data); // Here we log to our console 
    $.each(data.feed.entry, function(i, item) { 
      // Do your stuff here 
     }); // End of $.each 

// Here Success, Completed & Error do something. chained onto $.getJSON 
     }).success(function() { alert("success"); }) 
      .error(function(jqXHR, textStatus, errorThrown) { // Debug the error!! 
        console.log("error " + textStatus); 
        console.log("error throw " + errorThrown); 
        console.log("incoming Text " + jqXHR.responseText); 
       }) // End of .error 
      .complete(function() { alert("complete"); }); 
     }); 
}); // End of DOM Ready 

這將顯示在Firefox或Chrome的控制檯窗口中的錯誤(將執行console.log不是在IE工作和破壞腳本)。要在Firefox或Chrome中調出控制檯窗口,請按F12。如果JSON不起作用,它將顯示一個您可以調試的錯誤。


更新
另外,還要確保該代碼可在您$(document).ready()。如果使用它,$ .getJSON()可能會導致跨瀏覽器的意外行爲。

+0

我認爲這是要做到的。我需要非常小心地分開,但我已經在控制檯日誌中看到Chrome(至少)無法「找到」JSON文件(它坐在相同的文件夾中)。這解釋了爲什麼它不打開它,即使不是爲什麼它不能打開它。感謝您指出這一點,並澄清擴展$ .getJSON()語法。文檔顯示了這種擴展語法,但我不清楚如何放置自己的代碼。 –

2

是Web服務器上運行這個還是你只是打開該文件在瀏覽器?如果你只是打開文件,你會遇到問題。

+0

哇,我不知道。但是在我的開發機器上使用本地主機不會改變任何東西。這裏的理論是什麼? –

+0

您可以通過Ajax訪問的規則是不同的,但不確定它們是什麼,我總是將所有內容都運行在WA Web服務器上。 – BNL

+0

我現在記得,當我幾周前去研究類似的事情時,我在Chrome網站上發現了一個關於Chrome是否在禁止「本地訪問」方面是正確的爭議的證據。當時我還有其他問題,所以很快就忘了這一點。我認爲,正如你可能建議的那樣,如果我把所有東西都移到服務器上(從我的開發機器的IIS),它應該可以工作。 –

相關問題