我有一个jQuery函数从JSON文件中获取数据,但我无法让它工作。我正在开发Brackets编辑器,当我在他们的实时预览中打开网站时,一切都很棒。但是当我在本地打开html文件时,执行$ .getJSON.error而不是正常的$ .getJSON
function loadJson(e)
{
$('.images').fadeOut(300);
var jsonURL = "../../../images.json";
var txt = $(e.target).text();
setTimeout(function ()
{
$('.images').empty();
$.getJSON(jsonURL, function(json)
{
var imgList = "";
$.each(json[txt], function ()
{
imgList += '<div class="image_container reference">
<a href="' + this.imgPath + '">
<img src="' + this.imgPath + '"/>
<div class="overlay">
<span>' + this.name + '</span>
</div>
</a>
</div>';
});
$('.images').append(imgList);
}).error(function(json) { alert("error"); });
}, 300);
$('.images').fadeIn(300);
}
函数获取单击的项目标签,将其与JSON文件中的数组名称匹配,然后分别将这些图像附加到容器中。当我在Brackets实时预览中运行它时,它正在运行,所以我真的不知道发生了什么?
答案 0 :(得分:2)
但是当我在本地打开html文件时,
$.getJSON.error
被执行
浏览器非常重视安全性。在本地工作时,Chrome会阻止任何Ajax请求到本地文件。如果请求的文件与HTML页面位于同一文件夹(或更深层),Firefox将允许您这样做。
简而言之,要么将JSON文件放在同一文件夹中并使用Firefox,要么安装本地服务器。
WAMP Server (Windows)就是我用的。您将在本地工作,但您将通过http://
协议(localhost)而不是file://
协议访问您的页面。那应该解决它! Mac用户可以安装MAMP。