这可能是一个非常菜鸟的问题。
现在,我有以下自动完成功能块
<script>
var filename = src="{{ url_for('static', filename='cities.txt') }}"
$.get(filename,function(data) {
var cities = data.split('\n');
$( "#autocomplete-1" ).autocomplete({
source: cities
});
});
</script>
<form class="form-inline my-2 my-lg-0" action="{{ url_for('fetch_vals' )}}" method="get">
<label for="autocomplete-1"></label>
<input id="autocomplete-1" class="form-control mr-sm-2" type="text" placeholder="{{box_text}}" name="cities">
<button class="btn btn-secondary my-2 my-sm-0" type="submit">Go</button>
</form>
现在,我不想根据
cities.txt
进行读取,而是要根据服务器中的值自动完成因此,在我的简单Flask服务器中,我有一个端点
@app.route('/cities')
def cities():
cities = ['new york', 'portland']
return jsonify(cities=cities)
上面的返回一个JSON像
{"cities": ['new york', 'portland']}
在
'/cities'
上查询时我如何将这种从文件中读取的内容交换为从服务器中读取的内容并解析json。
谢谢
最佳答案
一种解决方案是从您的客户端代码发出AJAX请求,如下所示:
$.ajax({
type: 'GET',
url: "/cities",
dataType: "json",
success: function(data){
$( "#autocomplete-1" ).autocomplete({
source: data["cities"]
});
}
});
您可以从here阅读有关AJAX的更多信息。