从html发送json数组数据到Flask

时间:2018-11-21 18:48:30

标签: jquery ajax flask

我的前端有一个变量,称为图像,其中包含用户选择的少数图像。 以下:

JSON.stringify(images) 

然后会返回

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

如果用户选择了前三个图像。

我想将此数组发布到Flask,让flask做一些操作,然后以新的路线返回图像。 我的HTTP帖子的jQuery脚本如下:

$("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 :(得分:0)

将Flask应用服务器预期得到的响应的dataType配置为JSON

dataType: 'json',

那不是正确的数据类型,因为Flask服务器在响应中返回HTML,而jQuery在尝试将其解析为JavaScript对象时遇到错误。

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

JSON响应可以从服务器返回并在成功处理程序中适当处理。

from flask import jsonify

#...

return jsonify(result)

或者将响应的dataType设置为html(为此,您可以将返回的标记片段插入HTML文档中。)