Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在flask中处理请求json数据_Javascript_Jquery_Ajax_Post_Flask - Fatal编程技术网

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

Javascript 如何在flask中处理请求json数据,javascript,jquery,ajax,post,flask,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="ente

我想通过点击一个按钮将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>

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

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

请求将其加载到dict。get_json()
将表单数据解析为json,但如果您是作为表单数据提交的,则这将起作用。查看JS代码段,看起来您没有将其作为表单数据提交(您正在进行ajax调用),因此您的数据将在属性
request.json
request.get_json()
中将表单数据解析为json中可用,但如果您作为表单数据提交,这将起作用。查看JS代码段,看起来您没有将其作为表单数据提交(您正在进行ajax调用),因此您的数据将在属性
request.json

中可用,您可以这样使用:request.json

您可以这样使用:request.json

谢谢您的评论。我已经更改了python代码,以便按照您的建议请求数据(data=request.form.get('data')),但是在javascript中应该更改什么?请求主体是按钮吗?如果你能提供一个很好的例子。我的最终目标是使用此方法更新jquery数据表中的数据,但我认为将一个基本的POST方法用于url工作将是一个很好的第一步。谢谢你的评论。我已经更改了python代码,以便按照您的建议请求数据(data=request.form.get('data')),但是在javascript中应该更改什么?请求主体是按钮吗?如果你能提供一个很好的例子。我的最终目标是使用此方法更新jquery数据表中的数据,但我认为将一个基本的POST方法用于url工作将是一个很好的第一步。干杯
<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>
@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})