Javascript 猎犬,预取保存在我文件中的json文件

Javascript 猎犬,预取保存在我文件中的json文件,javascript,json,bloodhound,Javascript,Json,Bloodhound,我通过这里给出的例子学习《猎犬》: 当我从Github上国家的示例JSON文件中预取时,效果很好 var countries = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.whitespace, queryTokenizer: Bloodhound.tokenizers.whitespace, // `states` is an array of state names defined in "The Basics

我通过这里给出的例子学习《猎犬》:

当我从Github上国家的示例JSON文件中预取时,效果很好

var countries = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  // `states` is an array of state names defined in "The Basics"
  prefetch: 'https://raw.githubusercontent.com/twitter/typeahead.js/gh-
  pages/data/countries.json'
});
但是,当我在本地保存JSON时,它停止工作

var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: 'file:///C:/Users/nicho/workspace/TypeAhead/Countries.json'    
});
当我将保存的JSON链接放到浏览器中时,它显示的内容与Github上的JSON文件相同


为什么猎犬在读取我的本地JSON文件时遇到问题

给它一个相对路径,如下所示:

var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: 'Countries.json'    
});
var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: {
        url: "countries.json",
        cache: false
    }
});
或者据我所知,你的问题是使用已经下载的countries.json版本。您应该清除缓存并清除本地存储(localStorage.clear())。或者可以添加cache:false,如下所示:

var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: 'Countries.json'    
});
var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: {
        url: "countries.json",
        cache: false
    }
});

给它一个相对路径,如下所示:

var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: 'Countries.json'    
});
var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: {
        url: "countries.json",
        cache: false
    }
});
或者据我所知,你的问题是使用已经下载的countries.json版本。您应该清除缓存并清除本地存储(localStorage.clear())。或者可以添加cache:false,如下所示:

var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: 'Countries.json'    
});
var countries = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    prefetch: {
        url: "countries.json",
        cache: false
    }
});