Я борюсь с методами ajax JQuery и Flask, пытаясь сделать вызов ajax для получения некоторой формы.
Мой код js выглядит следующим образом:
$.ajax({
type: 'POST',
url: '/projects/dummyName',
data: JSON.stringify("{'ajax': 'True'}"),
contentType: 'application/json;charset=UTF-8',
dataType: 'html',
success: function(responseData, textStatus, jqXHR) {
$("#myform").text(responseData);
},
error: function (responseData, textStatus, errorThrown) {
alert('Error: '+errorThrown + ". Status: "+textStatus);
}
});
В основном, я добавляю параметр данных, чтобы позволить серверному методу, что это вызов ajax. Но я просто не могу получить эти данные на сервере как dict. Пробовал миллионные пути, не заставляя его работать.
Это метод фиктивного сервера:
@app.route('/projects/<name>', methods=['GET', 'POST'])
def projects(name=None):
print(request.json)
print(request.json['ajax'])
if name:
project = db.getProject(name)
form = ProjectForm(project)
if request.json['ajax'] == True:
return render_template("myform.html", form=form)
else:
return render_template("projectView.html", form=form)
else:
return render_template("projects.html")
Итак, request.json возвращает строку:
{'ajax': 'True'}
Конечно, приложение ломается при попытке доступа к json ['ajax'], и я получаю сообщение об ошибке BAD RESPONSE. Я думал, что это дало бы мне python dict, потому что иначе какая разница между request.json и request.data, если оба являются строками.
Как я могу получить python dict со всеми данными, переданными в вызове ajax? Это зависит от того, как я определяю contentType? это зависит от использования JSON.stringify или нет?
Помощь будет очень признательна! Благодаря