Javascript $.getJSON执行错误回调

Javascript $.getJSON执行错误回调,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个jQuery函数,可以从JSON文件中获取数据,但我就是不能让它工作。我正在开发括号内编辑器,当我在他们的实时预览中打开网站时,一切都很好。但当我在本地打开html文件时,将执行$.getJSON.error而不是普通的$.getJSON function loadJson(e) { $('.images').fadeOut(300); var jsonURL = "../../../images.json"; var txt = $(e.target).tex

我有一个jQuery函数,可以从JSON文件中获取数据,但我就是不能让它工作。我正在开发括号内编辑器,当我在他们的实时预览中打开网站时,一切都很好。但当我在本地打开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文件中的数组名匹配,然后分别将这些图像附加到容器中。当我在括号中运行实时预览时,它按预期工作,所以我真的不知道发生了什么

但当我在本地打开html文件时,会执行$.getJSON.error

浏览器非常重视安全性。在本地工作时,Chrome将阻止对本地文件的任何Ajax请求。Firefox只允许您在请求的文件位于同一文件夹或比HTML页面更深的情况下执行此操作

简而言之,将JSON文件放在同一文件夹中并使用Firefox,或者安装本地服务器


这是我用的。您将在本地工作,但您将通过http://protocollocalhost而不是file://protocol访问页面。那应该可以解决它!Mac用户可以安装。

只是停止工作,给我错误-错误是什么?应该是json文件的路径有问题。当使用括号时,它可以解析相对路径,但在浏览器中它无法解析$.getJSONjsonURL,functionjson{}.errorfunctionjson{};执行,而不是普通的$。GetJSON在本地打开html文件时,将您的json url替换为该文件的确切地址,而不是路径…-这就是你的问题所在。来自file://的任何ajax请求都被视为跨域请求,而您不能这样做。您需要它在web服务器上运行,以便所有内容都在域或本地主机上。谢谢。但当我上传它时,它仍然不能在域上工作。我将JSON文件放在与jQuery脚本相同的文件夹中,但它仍然执行错误。当您打开JavaScript控制台F12时,是否看到任何错误?404,阻止请求,还是JSON格式错误?我解决了。多亏你指出有一个控制台,我才知道我必须把JSON文件的完整路径放进去。太好了!好吧,你不必,我通常不这么做,但你必须确保路径是正确的。