Отправка данных массива json из html во Flask - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть переменная, называемая images, в моем интерфейсе, содержащая несколько изображений, выбранных пользователем.Затем:

JSON.stringify(images) 

вернет

["image1", "image2", "image3"]

, если пользователь выберет первые три изображения.

Я хочу отправить этот массив в Flask, заставить колбу выполнить некоторые манипуляции, а затем вернуть изображения по новому маршруту.Мой сценарий jQuery для сообщения HTTP выглядит следующим образом:

$("document").ready(function() {
$("#btn1").click(function(){  
$.ajax({
type: 'POST',
contentType: 'application/json',
url:  "{{ url_for('filter') }}",
dataType : 'json',
data : JSON.stringify(images) 
})
})
})

Маршрут, отвечающий за манипуляции, выглядит следующим образом:

 @app.route("/filter", methods=["POST", "GET"])
 def filter():
     if request.method=="POST":
         result=request.get_json()
         ## Do some manipulation to result
 return render_template("result.html",result=result)

Моя проблема заключается в том, что данные, извлекаемые Flask, пусты.

1 Ответ

0 голосов
/ 21 ноября 2018

dataType для ответа, ожидаемого от сервера приложений Flask, был настроен на JSON.

dataType: 'json',

Это неправильный dataType, поскольку сервер Flask возвращает HTML вэто ответ, и jQuery сталкивается с ошибкой, пытаясь разобрать его в объект JavaScript.

return render_template("result.html", result=result)

Ответ JSON можно вернуть с сервера и обработать соответствующим образом в обработчике успеха.

from flask import jsonify

#...

return jsonify(result)

Или dataType для ответа, установленного на html (для этого вы можете вставить возвращенный фрагмент разметки в документ HTML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...