向烧瓶API的AJAX发布请求返回对象对象错误

时间:2019-07-18 02:10:40

标签: jquery ajax api flask

我使用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同步即可。

0 个答案:

没有答案