我试图使用jQuery API读取info.json
文件。请在下面找到代码,该代码是test.html
的一部分。
$.getJSON('info.json', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
test.html
文件驻留在我的本地计算机上,当我尝试在浏览器中打开它时,Ajax调用未被触发,并且未读取info.json
文件。
它没有用,因为我没有网络服务器吗?或者我在代码中做错了什么? (虽然我在Firebug控制台中没有看到任何错误。)
提前致谢。
答案 0 :(得分:2)
您将始终必须在您进行AJAX呼叫的地方托管您的网站。否则会抛出此异常。
origin null is not allowed by access-control-allow-origin
在localhost服务器上托管你的页面,我想一切都会很好用。
答案 1 :(得分:1)
虽然从技术上讲你不需要Web服务器,但是用于抽象网络访问的一些库可能无法使用本地文件,而某些浏览器不允许本地文件做很多事情,所以类似{{{ 3}}对你的开发和测试非常有用。
答案 2 :(得分:0)
安装像http://jetty.codehaus.org/jetty/这样的小型网络服务器 易于安装,小型下载;)
答案 3 :(得分:0)
通过将JSON字符串放入文本文件并将其加载到iframe中,您可以推断数据。 (大多数浏览器都可以在iframe中加载.txt文件。)
var frame = document.createElement("IFRAME"); //Create new iframe
var body = document.body;
frame.onload = function() { //Extrapolate JSON once loaded
data = JSON.parse(frame.contentDocument.documentElement.innerText); //Loads as a global.
body.removeChild(frame); //Removes the frame once no longer necessary.
}
frame.style.display = "none"; //Because the frame will have to be appended to the body.
body.appendChild(frame);
frame.src = "your JSON.txt"; //Select source after the onload function is set.