可以't通过ajax和flask获取json

Can't get json through ajax and flask

本文关键字:flask 获取 json ajax 通过 可以      更新时间:2023-09-26

我正在尝试制作一个用于日志显示的简单web应用程序。在web端:python 3.4和flask,在客户端,它是一个简单的带有ajax的web表单。

烧瓶:

import json
from flask import Flask, jsonify, render_template, request
app = Flask(__name__)
@app.route('/json_test', methods=['GET'])
def json_test():
    return open('log.json').read()

@app.route('/')
def index():
    return render_template('layout.html')
if __name__ == '__main__':
    app.run(debug=True)

我的HTML表单

<!DOCTYPE html>
<script type=text/javascript src="{{
  url_for('static', filename='jquery.js') }}"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="{{
  url_for('static', filename='jquery.js') }}">'x3C/script>')</script>
<script type=text/javascript>
  $LOG = {{ request.script_root|tojson|safe }};
</script>

<script type=text/javascript>
    $(function() {
        $('a#log').bind('click', function() {
            $.getJSON($LOG + '/json_test',
                function(data){
                    $("#logs").text(data.result);
                    });
                    return false;
            });
  });
</script>

<p>
    <span id=logs>Logs should be here</span>
    <a href=# id=log>take log</a>
</p>
</html>

我的JSON示例:

{
"data":
{
    "misc":
    [
        {
            "name" : "JSON 1",
            "type" : "1"
        },
        {
            "name" : "JSON 2",
            "type" : "2"
        }
    ]
}
}

我想每5秒钟发送一部分日志。为此,我计划使用js函数:setInterval。我说得对吗?

您的JSON数据没有result密钥。您有一个data密钥。

然而,将data.data结果放置在<span>中将仅插入文本[object Object];您需要插入实际文本。您可以使用JSON.stringify():将对象转回JSON文本

$("#logs").text(JSON.stringify(data.data));

或者你可以发送一些更有意义的东西。