我使用flask,flask_marshmallow和SQLAlchemy创建了完整的CRUD API。与邮递员一起测试时,API可以很好地工作,但是当我向API发送$ .ajax()(并尝试了$ .post()函数)时,服务器出现500错误。很难找到问题,因为某些原因它不会控制台记录错误。设法看到我收到一个带有警报的对象错误。
我试图完全省略Jquery并使用XMLHttpRequest()发送数据;但无济于事。使用JSON.stringify()的唯一原因是使用chrome调试器工具,您可以看到正在发送的数据是JS对象而不是JSON。调试器还注意到,该数据是从HTML正确提取的,并且经过字符串化处理后,它是格式正确的JSON文件,其中包含所有数据。
``` JavaScript
$(document).ready(function () {
var $name = $('#name');
var $email = $('#email');
var $cName = $('#cName');
var $contact = $('#contact');
var $date = $('#date');
var $fromtime = $('#fromtime');
var $tilltime = $('#tilltime');
$('#submit').click(function () {
var booking = {
name: $name.val(),
email: $email.val(),
cName: $cName.val(),
contact: $contact.val(),
date: $date.val(),
fromtime: $fromtime.val(),
tilltime: $tilltime.val()
};
var jsonBooking = JSON.stringify(booking);
$.ajax({
method: "POST",
url: "http://127.0.0.1:5000/booking",
dataType: "json",
data: jsonBooking,
success: function (data) {
alert('success');},
error: function (data) {
alert(data);
}
});
});
```
python flask
#Create Booking
@app.route('/booking', methods=['POST'])
def add_booking():
name = request['name']
email = request['email']
cName = request['cName']
contact = request['contact']
date = request['date']
fromtime = request['fromtime']
tilltime = request['tilltime']
new_booking = Booking(name, email, cName, contact, date, fromtime, tilltime)
db.session.add(new_booking)
db.session.commit()
return booking_schema.jsonify(new_booking)
基本上,只想从HTML中获取值并将其存储在bd中,然后将数据库与GCalender同步即可。