【发布时间】:2014-06-28 08:18:03
【问题描述】:
我已经用谷歌搜索了几个小时并检查了文档,但我似乎找不到我的 jQuery 有什么问题...我正在尝试练习阅读本地 JSON 文件并在我的 HTML 正文中显示内容。
$(document).ready(function(){
$.getJSON( "test.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
console.log(data);
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
});
这是同一文件夹中的实际 json 文件:
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
当我打开 index.html 时,我只得到一个空白正文。 index.html 有
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/JavaScript" src="script.js"></script>
所以我知道我的链接应该不是问题......
更新: 这是我现在从控制台获得的新输出:
XMLHttpRequest cannot load file:///C:/Users/Steven/Desktop/meltApplication/test.json. Received an invalid response. Origin 'null' is therefore not allowed access.
【问题讨论】:
-
如果你
console.log(data)看到预期的对象了吗? -
我没有看到预期的对象,事实上,我得到了错误 (?)。无法加载资源:net::ERR_FILE_NOT_FOUND 文件://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js 未捕获的 ReferenceError:$ 未定义 script.js:1
-
当您在 URL 上省略协议前缀时,它使用与加载主页时相同的协议。因此,如果您在本地访问
index.html,则无法以这种方式访问 CDN,您必须从网络服务器获取index.html。 -
AJAX 使用 XHR 请求。一个 XML HTTP 请求。您不能通过来自浏览器的 HTTP 请求直接访问文件系统。这注定要失败。您需要一个合适的 Web 服务器,通过 HTTP 提供内容。
-
通过搜索才发现,谢谢!
标签: javascript jquery html json