我正在努力使用
JQuery ajax方法和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调用.但是,我只是无法在服务器中获取该数据.尝试了一路,无法使其奏效.
这是虚拟服务器方法:
@app.route('/projects/', 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错误msg时,该应用程序中断.我以为会给我一个python dict,因为否则如果两个都是字符串,那么request.json和request.data之间会有什么区别.
如何获取一个python dict与所有的数据传递在ajax调用?这是否取决于我定义contentType的方式?是否依赖于JSON.stringify的使用?
帮助将不胜感激!
谢谢