【问题标题】:Why is flask jsonify returning unidentified?为什么烧瓶 jsonify 返回身份不明?
【发布时间】:2020-09-09 08:26:42
【问题描述】:

我在前端使用 fetch 将数据发送到我的烧瓶后端,以便进行电影座位预订。整个过程运行良好,直到客户端等待响应,即 "undefined" 。所以,基本上数据库保存数据,唯一的问题是发送给客户端的响应。我使用 jsonify 通常可以正常工作。谁能告诉我我错过了什么?提前致谢。

这是JS代码:

function sendReservationToServer() {

    const selectedSeats = sessionStorage.getItem('selectedSeats')
    const reservation = { userId, selectedSeats, showTimeId, movieHallId }
    fetch('/bookSeats', {
        method: 'post',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(reservation)
    }).then(response => {
        response.json()
    }).then(data => {
        theatreHall.innerHTML = `${data} <br> <a href='/home'>Back to main menu</a>`
        console.log(`${data}`)
    }).catch(err => infoMsg.textContent = err)
    sessionStorage.clear()
}

这是处理请求的烧瓶控制器:

@app.route("/bookSeats", methods=["POST"])
def book_seats():
    selected_seats = request.json
    user_id = selected_seats.get('userId')
    seats = json.loads(selected_seats.get('selectedSeats'))
    movie_hall_id = selected_seats.get('movieHallId')
    seat_ids = []
    showtime_id = selected_seats.get('showTimeId')
    for seat in seats:
        seat_ids.append(db.session.query(Seat).filter(
            Seat.seat_number == seat).filter(Seat.movie_hall_id == movie_hall_id).all()[0].stid)
    for seat in seat_ids:
        reserved_seat = ReservedSeat(
            seat_id=seat, show_time=showtime_id, user=user_id)
        db.session.add(reserved_seat)
        db.session.commit()
    reservation = Reservation(
        user=user_id, show_time=showtime_id, number_of_tickets=len(seat_ids))
    db.session.add(reservation)
    db.session.commit()
    message = f'{seats} booked successfully'
    return jsonify(message)

【问题讨论】:

    标签: flask fetch jsonify


    【解决方案1】:

    data 未定义,因为第一个 then 不返回任何内容。要么让它返回response.json(),要么将第二个then 中的所有内容移到第一个并将data 替换为response.json()

    【讨论】:

    • 你是对的。它没有返回任何东西,因为 response.json 是 {response.json} 。当我删除 {} 时,它起作用了。感谢您的反馈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2020-12-25
    • 2020-06-16
    相关资源
    最近更新 更多