javascript - 根据服务器中的值自动完成 html block

标签 javascript html flask

这可能是一个非常菜鸟的问题。 现在,我有以下自动完成 block

<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 的信息.

关于javascript - 根据服务器中的值自动完成 html block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58677848/

相关文章:

javascript - tail -f 在浏览器中

javascript - AngularJS - 如何维护表的已检查票证 ID

java - 将后端代码(Java、Python)与 HTML 集成

python - 如何在 request.post 方法中使用 json 和 files 参数上传文件

python - Flask 和 css 引用静态文件

python - 使用 Alembic 时导入应用程序引发 ImportError

javascript - 能否加密一个 n 位数字,返回一个唯一的 n 位数字?

javascript - 如何在 vue.js 中动态设置@click?

html - 我的 CSS 没有填满网页底部

javascript - selectionStart-End with textareas