Javascript 如何在flask中处理请求json数据
我想通过点击一个按钮将json格式的数据从我的html页面发送到一个url,但目前数据没有更新到url。我在这里包含了我试图发布的数据的一小部分。GET方法可以很好地将初始输出发布到url。ajax请求的结果是警报错误输出。如何使用POST将输出成功更新到url html: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
<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})