未使用Javascript访问JSON文件

JSON file not being accessed using Javascript

本文关键字:文件 JSON 访问 Javascript 未使用      更新时间:2023-09-26

可能重复:
从localhost或文件访问JSON服务://

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script>
$.getJSON('http://game4u.comuf.com/songs.json', function(data) { 
  var output = data.music[0].url; 
  document.getElementById("placeholder").innerHTML = output;
});
</script>

但是当我运行此程序时,我的JSON文件(music[0].url(不会显示在浏览器中。我在本地运行HTML,而不是在和网站相同的服务器上。

我在本地运行HTML,而不是在和网站相同的服务器上。

这就是问题所在。getJSON是一个"ajax"调用,这些调用受到同源策略的限制。您的本地文件系统与http://game4u.comuf.com/songs.json不是同一来源(尽管有些浏览器将本地文件系统视为与任何来源匹配;大多数浏览器则不然(。

如果在http://game4u.comuf.com/songs.json中控制内容,则可以使用JSON-p而不是JSON。JSON-P围绕SOP开展工作。另一种选择是跨来源资源共享,它还要求服务器端做一些事情(在这种情况下,授予对origin"null"的访问权限(,还要求您使用支持它的浏览器(所有现代浏览器都这样做,IE9只有在您处理它需要使用XDR而不是XHR对象的事实时才这样做;这是jQuery不能为您做的事情,尽管有插件可以这样做(。


另外,正如Musa所指出的,您的JSON是无效的。如果您更正了URL中的反斜杠(它们应该是斜杠[/],而不是反斜杠['](,并且删除了列表末尾的尾部,(这在JSON中是无效的(,则该选项将有效。