AJAX GET 无法处理本地 JSON 文件?

Xti*_*ian 5 ajax jquery local-files

我有一个 JSONP URL,它正在提取数据并刚刚切换到本地 JSON 文件,现在我收到错误。我不明白为什么它不能使用本地 JSON 文件?

<script type="text/javascript">
    $.ajax({
        type : 'GET',
        dataType : 'json',
        url: '/json/topics.json',
        success : function(data) {
            console.log(data); 
            var topics = [];
            $.each(data.results, function(index, obj){
                topics.push({
                    username: obj.TopicName,
                    mentions: obj.LastHourCount,
                    totalcount: obj.TotalCount,
                    daycount: obj.Last24HoursCount
                }); 
            });
            $('#leader').tmpl(topics).appendTo('#top3');
        } 
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在控制台中,由于某种原因,它说 AJAX 是一个匿名函数?有什么建议么?

jk.*_*jk. 3

$.ajax是异步的,看起来你正在尝试更改页面加载时的 DOM,添加

async: false,
Run Code Online (Sandbox Code Playgroud)

到你的$.ajax参数。请注意,这可能会减慢页面加载速度。

例子:

 $.ajax({
    type : 'GET',
    dataType : 'json',
    async: false,
    // rest of your code
Run Code Online (Sandbox Code Playgroud)

如果您使用本地文件而不是通过网络服务器并收到错误,请参阅这篇文章Origin null is not allowed by Access-Control-Allow-Origin

使用 JQuery 的 ajax 方法加载 XML 文件时出现错误:“Access-Control-Allow-Origin 不允许 Origin null”