我的 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 时遇到了麻烦。
谢谢!
最佳答案
如果您正在尝试这是一个现代浏览器,我恐怕要告诉您,AJAX 调用将无法工作。当页面在本地提供时,Google Chrome 会创建此错误消息:
XMLHttpRequest 无法加载 file://data.json。仅支持以下协议(protocol)方案的跨源请求:http、data、chrome-extension、https、chrome-extension-resource。
这意味着您需要一个服务器来使用 getJSON
函数进行 ajax 调用。要获得简单的服务器设置,请安装 python 并使用它的 SimpleHTTPServer 模块,如 @limelights 所建议。
安装完 python 后,打开终端/命令提示符并 cd
到 html
文件所在的文件夹。然后输入命令python -m SimpleHTTPServer
。这使您可以通过 localhost:8000 进行简单的服务器访问。现在脚本运行得很好。
注意:确保 JSON 文件中有一些文本,否则它将无法工作。
关于javascript - 我的 $.getJSON 似乎没有从我的 JSON 文件中检索信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232214/