我的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时遇到了麻烦。
谢谢!
答案 0 :(得分:2)
如果您正在尝试这是一款现代浏览器,我恐怕会告诉您AJAX通话无法正常工作。当本地提供页面时,Google Chrome会创建此错误消息:
XMLHttpRequest cannot load file://data.json. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource.
这意味着您需要服务器使用getJSON
函数进行ajax调用。要获得简单的服务器设置,请按照@limelights的建议安装python并使用它的SimpleHTTPServer模块。
安装python后,打开终端/命令提示符,将cd
打开到html
文件所在的文件夹。然后输入命令python -m SimpleHTTPServer
。这使您可以通过localhost:8000
进行简单的服务器访问。现在脚本运行得很好。
注意:确保JSON文件中有一些文字,否则它无法正常工作。
答案 1 :(得分:0)
试试这个,这样你实际上可以看到失败的原因:
$(function() {
$.getJSON("data2.json", function(data) {
console.log(data);
})
.fail(function(err) {
console.log(err.responseText);
})
});
但是,您没有收到警报这一事实让我觉得您的代码中还有另一个错误。检查调试工具。