Javascript jQuery如何自动完成动态筛选响应

Javascript jQuery如何自动完成动态筛选响应,javascript,jquery,google-app-engine,autocomplete,Javascript,Jquery,Google App Engine,Autocomplete,我目前正在使用自动完成输入 我的问题是:上面链接的演示如何自动过滤结果? 如果我使用本地数据存储,它会为我过滤结果 <script> var suggestions = [ "Afghan", "African", "Senegalese", "American", "Arabian",

我目前正在使用自动完成输入

我的问题是:上面链接的演示如何自动过滤结果?

如果我使用本地数据存储,它会为我过滤结果

<script>
var suggestions = [ "Afghan", 
                    "African", 
                    "Senegalese", 
                    "American", 
                    "Arabian", 
                    "Arab Pizza", 
                    "Argentine", 
                    "Armenian", 
                    "Asian Fusion", 
                    "Asturian", 
                    "Australian", 
                    "Austrian" 
                  ]
$('#categories').autocomplete({
    // serviceUrl: '/autocomplete/categories',
    lookup: suggestions,
    delimiter: ',',
    maxHeight: 200,
    minChars: 2
});
</script>
在这个版本中,它仍然对所有条目进行编辑距离,但过滤不再起作用

以下是他们的API:
这里有很多选项,如果有人能给我一些建议,其中一个可能会有所帮助,那就太好了。

该演示没有使用外部数据源


但我不确定你在问什么:使用外部数据源的全部意义在于它是进行过滤的源-它只返回与Ajax get发送的令牌匹配的值。否则,您也可以将所有数据包含在原始请求中

当您尝试使用javascript向其他服务器请求时,由于安全问题,通常会被Web浏览器阻止。(您可以通过关键字
跨域javascript请求进行谷歌搜索


如果您使用java,您可以创建一些java代码控制器或Servlet(不是javascript),将请求传递给其他服务器,并将其传递给html(就像一座桥)。或者,如果您使用PHP或Python,也可以做同样的事情

哦,我使用的是外部源,因为它包含很多数据项。我想读入条目,而不是将所有条目放入Javascript数组中。这可能不是应该使用的方式吗?
class AjaxHandler(webapp2.RequestHandler):
    def __init__(self, request, response):
        self.initialize(request, response)
        self.categories = []
        with open("static/categories.data") as categories_file:
            for entry in categories_file:
                self.categories.append(str(entry))
                print entry


    def get(self):
        suggestions = {"suggestions": self.categories}
        self.response.write(json.dumps(suggestions))
        self.response.headers.add_header("Content-Type", "application/json; charset-UTF-8")