我想通过单击按钮将html格式的json格式的数据发送到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>
烧瓶:
@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})
答案 0 :(得分:0)
将json数据放入请求正文中。
您可以使用request.form.get('data')
访问请求正文以获取json字符串。可以使用json.load(json_str)
将其加载到字典中。
答案 1 :(得分:0)
request.get_json()
将表单数据解析为json,但是如果您要提交为表单数据,则此方法将起作用。查看JS代码段,您似乎没有将其作为表单数据提交(正在进行ajax调用),因此您的数据将在属性request.json
答案 2 :(得分:0)
您可以这样使用:request.json