2014-12-01 32 views
2

我的json文件被稱爲data.JSON,它與我的index.html和我的js文件位於同一目錄中。

在html中我已經鏈接了jquery,然後是js文件。

在data.JSON的數據是:

[ 
{ 
    "question": "What OS does the One Plus One run by default?", 
    "choices": ["Android 5.0 Lollipop", "Cyanogen Mod 11", "Android Kitkat", "iOS", "Cyanogen Mod 11"] 
}, 
{ 
    "question": "Who is the lead singer of the British band 'Muse'?", 
    "choices": ["Matt Bellamy", "John Lennon", "Will.I.Am", "Danny O'Donoghue", "Matt Bellamy"] 
}, 
{ 
    "question": "Which Japanese/American singer released 'Goodbye Happiness'?", 
    "choices": ["Jay Park", "Utada Hikaru", "Gackt", "Yoshika", "Utada Hikaru"] 
}, 
{ 
    "question": "The popular Korean girl-group known as 'Girl's Generation' is also known as:", 
    "choices": ["4Minute", "SNSD", "After School", "Girl\'s Day", "SNSD"] 
}, 
{ 
    "question": "What sub-genre of EDM does the hit 'Selfie' fall under?", 
    "choices": ["Melbourne Bounce", "Big House Boom", "Dubstep", "Grime", "Melbourne Bounce"] 
} 
] 

JavaScript文件,我鏈接包含:

$(document).ready(function() { 
'use strict'; 
var allQuestions; 

$.getJSON("data.json", function (info) { 
     alert("hi"); 
    }); 
}); 

我得到實際的問題是,我甚至不能似乎得到彈出警報。我想要做的就是將我的JSON中的加載數據加載到我的JS文件中,這樣我就可以運行測驗腳本,但是我遇到了只是加載JSON的麻煩。

謝謝!

+3

您是否從Web服務器提供JSON文件?如果沒有,如果你已經安裝了python,進入你的data.json文件所在的文件夾,然後編寫'python -m SimpleHTTPServer',然後進入你的瀏覽器並指向http://127.0.0.1:8000/data.json和瞧。 – 2014-12-01 16:00:23

+0

你可以添加類似.fail(function(jqxhr,textStatus,error){});看看具體的錯誤是什麼。 – bsayegh 2014-12-01 16:06:10

+1

'(document).ready'應該是'$(document).ready',如果這不是一個錯字。 – Andy 2014-12-01 16:08:38

回答

0

試試這個,所以你居然能看到失敗的原因:

$(function() { 
    $.getJSON("data2.json", function(data) { 
    console.log(data); 
    }) 
    .fail(function(err) { 
     console.log(err.responseText); 
    }) 
}); 

然而事實是,你沒有得到的警報讓我覺得有一個在你的代碼中的另一個錯誤。檢查你的調試工具。

+0

我試過了,它跳過了數據的console.log,並在.fail()中運行console.log。 .fail()中的console.log返回整個JSON對象數組,也許這是我的JSON格式化的問題? 另外,我的JSLint在我的js文件中顯示沒有錯誤 – 2014-12-01 16:23:12

+0

等待,''女孩的一天''成爲壞串。你應該從中刪除\。 – 2014-12-01 16:29:27

+0

這工作!我可以看到警報顯示,所以我現在可以繼續搞亂!非常感謝,今天我在很大一部分時間裏把頭髮拉出這個小小的東西! =) – 2014-12-01 16:33:44

2

如果你正在嘗試這是一個現代瀏覽器,我不敢告訴你,AJAX調用將無法正常工作。谷歌瀏覽器創建此錯誤消息,當頁面被本地提供: XMLHttpRequest cannot load file://data.json. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource.

這意味着你需要一臺服務器進行AJAX調用,使用getJSON功能。要獲得簡單的服務器設置,請按照@limelights的建議安裝python並使用它的SimpleHTTPServer模塊。

一旦安裝了python,打開終端/命令提示符和cd到您的html文件所在的文件夾。然後輸入號碼python -m SimpleHTTPServer。這使您可以通過localhost:8000訪問簡單的服務器。現在腳本運行得很好。

注意:確保JSON文件中有一些文本,否則它將不起作用。

+0

是什麼讓你覺得他沒有網絡服務器?或者他想要一個Python。你是否只是複製粘貼來自其他地方的這個答案而不打擾閱讀這個問題? – 2014-12-01 16:31:10

+0

好吧,他寫道,'看起來似乎沒有彈出警報',我只能通過本地訪問頁面才能複製這種情況。但是當我通過python服務器訪問它時,它工作。 然而,我所忽視的一件事是,其中一個JSON條目中有一個「\」字符。我的測試json文件是正常的。 所以,即使他嘗試我的建議,它仍然不會奏效。 PS:我很費心閱讀這個問題。 – zhirzh 2014-12-01 16:39:14

相關問題