flask不向ajax调用提供结果



我正在使用以下令牌对flask函数进行ajax调用以获取数据

@app.route("/questgen/results", methods = ['POST', 'GET'])
def fetch_results():
token = request.form.get('token')
print(token)
conn = sqlite3.connect("database.db" , timeout=20)
cur= conn.cursor()
select_query = '''SELECT processed, output_text 
FROM results 
WHERE token = token 
'''
cur.execute(select_query)
records = cur.fetchall()
processed = ""
html = ""
for row in records:
processed = row[0]
html = row[1]
conn.close()
data = {'processed': processed, 'html' : html}

return redirect(url_for('questgen', data = data))

ajax调用如下

$.ajax({
type: "POST",
url: "/questgen/results",
data: { token: token },
datatype: "json",
success: function (data) {
if (data.processed == 1) {
$('#divresults').html(data.html);
$('#divresults').show();
hideMyModal();
clearInterval(saveInterval);
}
}
});

完整的有点长,可以在这个要点中找到,问题是它返回

TypeError:视图函数没有返回一个有效的响应。的函数返回None或不返回语句结束。

即使我已经尝试了相同的flask函数作为python函数通过使用return data在同一数据库上,它的工作原理。我甚至试图得到token作为函数参数,但它仍然不工作。有人能告诉我我哪里做错了吗?谢谢你

jQueryajax调用不会自动处理重定向。您将得到一个带有301或302状态码的响应。如果确实需要重定向,则需要检查302状态返回并使用更改后的数据再次进行调用。如果您可以通过调用另一个函数在内部进行重定向,那就更好了。

尝试jsonify返回数据

from flask import Flask, jsonify, request #import this 
然后用这个返回数据
return jsonify({"res": data})

在ajax中,你将得到你的数据在res

console.log(data.res) // your data
console.log(data.res.processed) // your if condition

还要检查是否需要解析响应体

相关内容

  • 没有找到相关文章

最新更新