javascript - 如何在flask中处理请求json数据

标签 javascript jquery ajax post flask

我想通过单击按钮将 json 格式的数据从我的 html 页面发送到 url,但目前数据没有更新到 url。我在这里包含了我要发布的一小部分数据。 GET 方法可以很好地将初始输出发布到 url。 ajax 请求的结果是警报错误输出。如何使用 POST 成功将输出更新到 url?

HTML:

<button type="submit" class="btn-sm btn-success btn-space" id ="commitButton" name="commitButton" value="enter">Commit</button>

Javascript:

<script>

    document.getElementById('commitButton').onclick = function() {
        $.ajax({
            url: "/processjson",
            type:'POST',
            headers: {
                'X-CSRF-TOKEN': '{{ csrf_token() }}'
            },
            "dataType": "json",
            "data": {"schema": {"fields":[{"name":"index","type":"integer"},{"name":"OB_TIME","type":"datetime"},{"name":"LATITUDE","type":"number"},{"name":"LONGITUDE","type":"number"}]}, "data": [{"index":0,"OB_TIME":"2015-09-03T00:00:00.000Z","LATITUDE":21.9,"LONGITUDE":-152.0}]},
            "contentType": "application/json",
             success: function(result) {
                            alert('ok');
                        },
             error: function(result) {
                            alert('error');
                        }
        })
    };

</script>

flask :

@app.route('/processjson', methods=['GET','POST'])
@login_required
def processjson():
    if request.method == 'GET':
        return jsonify({'result':'Test'})

    # getting the table data when the commit button is pressed
    if request.method == 'POST':
        # gets jsonified data and convert it to a python data structure (dictionaries)
        data = request.get_json()
        fields = data['schema']['fields']
        tableData = data['schema']['data']
        return jsonify({'result':'Success!','tableData' : tableData})

最佳答案

将 json 数据放入请求正文中。 您可以使用 request.form.get('data') 访问请求正文以获取 json 字符串。可以使用 json.load(json_str) 将其加载到字典中。

关于javascript - 如何在flask中处理请求json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58168500/

相关文章:

javascript - 使用 Javascript 创建 HTML...从页面复制或存储在变量中?

jquery - 如何在 typeahead 函数调用中使用 bootstrap 的 typeahead 获取文本框的属性

javascript - 使用 Javascript 创建回调

c# - 为什么这个对 C# 方法的 jquery ajax GET 调用不起作用?

javascript - AngularJS 使用父 Controller 变量的值创建指令范围

javascript - 刷新 jqGrid 不会保存启用无限滚动的当前页面位置

javascript - 使用 JavaScript 检测互联网连接

javascript - bootstrap 与 fullpage.js 不相邻

javascript - Jquery Ajax 在本地主机上工作但拒绝在服务器上工作

Javascript 值在 '&' 字符后 chop