【发布时间】:2017-06-18 16:55:11
【问题描述】:
我有一个使用 Postman 成功测试的 Flask API,它接收 JSON 数据并将其提交到数据库。但是,我无法使用浏览器中的 HTML / JS 这样做。
请耐心等待,因为我只是在学习 JS / jQuery。
烧瓶代码:
@app.route('/submitworkorder', methods=['POST'])
def submitworkorder():
form = SubmitWorkorderForm.from_json(request.json)
if form.validate_on_submit():
customer = form.customer.data
return jsonify({'customer' : customer })
else:
for field, errors in form.errors.items():
for error in errors:
error_data = (u"Error in the %s field - %s" % (getattr(form, field).label.text, error), 'error')
return jsonify({'error' : error_data})
我的 JS 代码:
$(document).ready(function() {
$('form').on('submit', function(event) {
$.ajax({
type : "POST",
url : '/submitworkorder',
data : $('form').serialize()
})
.done(function(data) {
if (data.error) {
$('#errorAlert').text(data.error).show();
$('#successAlert').hide();
}
else {
$('#successAlert').text(data.customer + 'successfully created.').show();
$('#errorAlert').hide();
}
});
event.preventDefault();
});
});
我的 HTML / 表单:
</script>
</head>
<body>
<div class="container">
<br><br><br><br>
<form class="form-inline">
{{ form.customer }}
{{ form.hidden_tag() }}
<input type="submit" value="go"/>
</form>
<br>
<div id="successAlert" class="alert alert-success" role="alert" style="display:none;"></div>
<div id="errorAlert" class="alert alert-danger" role="alert" style="display:none;"></div>
</div>
</div>
控制台 - 您在此处看到的错误是我的 WTForms 验证错误返回的数据。
Object {error: Array(2)}
error:Array(2)0:
"Error in the customer field - This field is required."
1:"error"length:2
【问题讨论】:
-
url 应该用单引号括起来,例如 url:'/submitworkorder',并且在同一行末尾缺少逗号
-
检查你的控制台。它显示了什么错误并使用成功而不是完成
-
请记住始终使用控制台“F12”进行调试。
-
请在此处发布您的控制台输出
-
@AkhilMenon - 控制台在开发终端和 Chrome 开发者工具上都是空的,除了一些 favicon 404。我没有一套。即使在尝试发布数据之后。
标签: javascript jquery ajax flask