我正在對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);
}
}
});
完整的有點冗長它可以在這個要點中找到問題是它回傳
型別錯誤:視圖函式未回傳有效回應。該函式要么回傳 None 要么在沒有回傳陳述句的情況下結束。
即使我通過return data在同一個資料庫上使用,嘗試了與 python 函式相同的燒瓶函式并且它作業正常。我什至試圖獲取token作為函式引數,但仍然無法正常作業。有人可以幫助我在這里做錯什么嗎?謝謝
uj5u.com熱心網友回復:
jQueryajax呼叫不會自動處理重定向。您只會收到帶有 301 或 302 狀態代碼的回應。如果您確實需要重定向,則需要檢查 302 狀態回傳并使用更改后的資料再次呼叫。如果您可以通過呼叫其他函式在內部進行重定向,那就更好了。
uj5u.com熱心網友回復:
嘗試 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
還要檢查您是否需要決議回應正文
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/342449.html
上一篇:即使值存在于資料庫中,codeigniter中的ajax也僅顯示錯誤訊息
下一篇:檢測來自ajax函式的成功回應
