gpt4 book ai didi

jquery - 使用 AJAX 将 JSON 数据传递到 Flask 服务器?

转载 作者:行者123 更新时间:2023-12-03 16:21:59 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





jQuery posting JSON

(3 个回答)



How to get POSTed JSON in Flask?

(10 个回答)


4年前关闭。




我有一些由前端在 JQuery 中生成的数组。

Edit1(基于 Edgar Henriquez 的回答) :

my_jq.js:

var a = ['one','two'];
var b = ['three','four'];
var c = ['five'];
var d = ['six','seven','eight'];
var e = ['nine','ten','eleven'];
var newArray = [];

//jsonify to send to the server
$.ajax('/output', {
type: "POST",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(postData),
success: function(data, status){
console.log(newArray);
console.log(status);}
});

我将选定的值传递给服务器(Flask/python)并让它计算笛卡尔积。然后我需要在 output.html 屏幕中显示输出
@app.route('/output', methods = ['GET','POST'])
def output():
data1 = request.get_json(force = True)
a = data1['a']
b = data1['b']
c = data1['c']
d = data1['d']
e = data1['e']
newArray = [a,b,c,d,e]
for element in itertools.product(*newArray):
print(element)
return jsonify(element)
return render_template('output.html', element = element)

输出.html:
<p>{{ element }}</p>

编辑 2:

使用此代码,/output.html 生成:
 "Bad Request
Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)"

检查显示:
 "Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)"

为什么它不认识它?

最佳答案

为您 jquery 代码你可以有一个 JavaScript 对象(将对象的属性命名为数组变量只是为了约定)。像这样的东西:

var a = ['one','two'];
var b = ['three','four'];
var c = ['five'];
var d = ['six','seven','eight'];
var e = ['nine','ten','eleven'];

var postData = {
a: a,
b: b,
c: c,
d: d,
e: e
}

$.ajax({
url: "/output",
type: "POST",
contentType: "application/json",
data: JSON.stringify(postData),
success: function(data){/* do something */}
});

回到您的服务器,您可以执行以下操作:
@app.route('/output', methods=['POST'])
def output():
result = []
data = request.get_json()
a = data['a'] #will give you array a
b = data['b'] #will give you array b
c = data['c'] #will give you array c
d = data['d'] #will give you array d
e = data['e'] #will give you array e
newArray = [a, b, c, d, e]
#To test you got the data do a print statement

print(newArray)

# The for loop is not necessary if you pass the newArray directly to
# your template "output.html".
#
#for element in newArray:
# result.append(element)
#
#like this
return render_template('output.html', element=newArray)

您可以在 output.html 中显示结果但是你决定最适合你,记住

希望能帮助到你!

关于jquery - 使用 AJAX 将 JSON 数据传递到 Flask 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com