我可能在这里做些傻事,但出于某种原因,对我来说似乎是一个完全有效的ajax请求是行不通的。
这是AJAX请求:
data = {emotions: lRes};
console.log(data); //Data seems to be exactly what I'm looking for
$.ajax({
type: "POST",
data: data,
url: document.location.origin + "/facedata/" + slug,
success: function(){
console.log("Success!");
}
});
但接着是AJAX请求的接收端:
@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
if request.method == "POST":
try:
post = Post.objects.get_or_404(slug=slug)
print request.args
sys.stdout.flush()
data = request.args.get("emotions")
post.face_data.append(data)
post.save()
except:
traceback.print_exc(file=sys.stdout)
当我记录args时,我只得到一个空的ImmutableMultiDict
对象,所以情绪调用仍然失败。有人知道这到底发生了什么吗?
答案 0 :(得分:1)
request.args
是URL中提供的参数。 Flask的request
对象包含一个包含POSTed数据的.form
属性 - 因此您必须使用request.form
来访问通过AJAX请求发送的数据,例如:
@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
emotions = request.form.get('emotions')