Jquery 为什么$getJSON不在回调中执行代码?

Jquery 为什么$getJSON不在回调中执行代码?,jquery,getjson,Jquery,Getjson,我有以下JQuery: <script> $(document).ready(init); function init() { console.log('before'); $.getJSON('data.txt', function(data) { console.log('inside'); alert(data);

我有以下JQuery:

        <script>
        $(document).ready(init);
        function init() {
            console.log('before');
            $.getJSON('data.txt', function(data) {
                console.log('inside');
                alert(data);
            });
            console.log('after');

        }
    </script>   
但在控制台窗口中,我只得到:

before    
after
为什么回调中的代码没有执行

补遗 @newman,在Chrome的“我的网络”选项卡中,下面是data.txt文件:

增编2 在Firefox中,它表示在“之前”和“之后”之间读取,但从不将“内部”打印到控制台或执行警报


看起来它正在悄无声息地失败。data.txt的内容不是格式良好的JSON。应该是:

{
    "one":"111",
    "two":"222",
    "three":"333"
}
如果找到data.txt并返回其内容并成功解析,则应进入控制台:

before
after
inside

看起来它正在悄无声息地失败。data.txt的内容不是格式良好的JSON。应该是:

{
    "one":"111",
    "two":"222",
    "three":"333"
}
如果找到data.txt并返回其内容并成功解析,则应进入控制台:

before
after
inside

可能是脚本正在您期望的其他文件夹中查找data.txt。检查FireBug中的“网络”或“控制台”选项卡,运行什么请求以获得正确的url。@newman如上所述,它似乎正在加载该文件,或者至少可以识别它与index.html位于同一目录中,可能是脚本在您期望的其他文件夹中查找data.txt。检查FireBug中的“网络”或“控制台”选项卡,运行什么请求以获得正确的url。@纽曼如上所述,它似乎正在加载该文件,或者至少可以识别它与index.html位于同一目录中。在firefox中,它说它正在读取该文件,请参见上文,这很奇怪。JSON是否需要采用不同的格式。我也将文件格式更改为UTF-8,没有更改。@EdwardTanguay-您是否根据我的建议更改了文件内容?在firefox中,它说它正在读取文件,请参见上文,这很奇怪。JSON是否需要采用不同的格式。我也将文件格式更改为UTF-8,没有更改。@EdwardTanguay-您是否根据我的建议更改了文件内容?