В колбе я использую запрос GET, чтобы сначала отобразить шаблон и получить данные, выбранные пользователем.
@app.route('/surveys', methods=['POST', 'GET'])
def register_form():
if request.method == 'GET':
return render_template('survey_table.html')
else:
example = request.json
return json.dumps(example)
Эти данные (то есть #id флажков, выбранных в таблице) затем отправляются обратно в FLASK с помощью запроса Post ajax. Поскольку данные изначально были массивом, я использовал JSON.stringify
$(document).ready(function() {
$('#submit').click(function() {
var list = [];
var checkBoxes = $('#surveyDetails').find("input[type='checkbox']:checked");
checkBoxes.each(function() {
var currentRow = this.parentNode.parentNode;
list.push(currentRow.getElementsByTagName("td")[0].innerText);
});
// now names contains all of the names of checked checkboxes
$.ajax({
contentType: "application/json",
url: '/surveys',
type: 'POST',
data: JSON.stringify({'Hello': list}),
success: function (result) {
alert(result);
},
error: function (result) {
alert("error!");
}
}); //end ajax
});
});
Проблема:
Я вижу, что сообщение ajax успешно выполнено, так как я могу видеть выбранные идентификаторы как предупреждение, как только я нажимаю кнопку отправки. Однако при возвращении этого объекта JSON в фляге я всегда получаю нулевой ответ.
Я уже пробовал get_json (force = True). Все тот же результат.