Почему flask не принимает мой fetch запрос и возвращает 400 bad request?

Мой js:

$(document).ready(function () {
    $("#review" ).submit(function( event ) {
        sendFetchReviewForm("review");
        event.preventDefault();
    });
});


function sendFetchReviewForm(rev_form) {
    f = new FormData(review)
    url = review.getAttribute('action')
    method_ = review.getAttribute('method')
    fetch(url, {
        method: method_, 
        headers: {'Content-Type': 'multipart/form-data'},
        body: f
}).then((response) => {alert(response.status)
    });
}

view.py

@shop_blueprint.route('shop/product/<string:product_id>/add_reveiw', methods=['POST'])
@login_required
def review_handler(product_id):
    form = ReviewForm()
    json_data = {}
    requ = request.get_json()
    if request.method == 'POST':
        text = form.review_text.data
        review = services.create_review(text, current_user.id, int(product_id))
        json_data['text'] = text        

        return json_data

Я понимаю, что view с точки зрения обработки полей не правильный, дело в том, что я сначала использовал ajax и потом его перепишу. Почему flask не принимает мой запрос?


Ответы (1 шт):

Автор решения: Evil Giraffe

Возможно, проблема в том, что вы возвращаете словарь из python, а не json объект.
return flask.jsonify(json_data)

Советую вам использовать ajax. На мой вкус он проще.

→ Ссылка