【发布时间】:2022-01-23 12:27:49
【问题描述】:
我是 javascript 新手,我创建了一个烧瓶站点,我想关注 ansible tower 的工作。 我已经创建了一个特定的路线:
@app.route("/tower/<int:id>", methods=['POST','GET'])
def status(id):
launch = True
job_info = {}
status = refreshstatus(id)
return render_template(
'tower.html',
job_info = job_info,
status = status,
launch = launch,
id = id)
@app.route("/tower", methods=['POST','GET'])
def tower():
launch = False
if request.method == 'POST':
keyword = request.form['launchjob']
logger.info("Test | Keyword var => " + keyword)
template_id = request.form['template_id']
job_info = launch_job(template_id, keyword)
launch = True
return render_template('tower.html', job_info = job_info, launch = launch)
else:
return render_template('tower.html')
我的 js 脚本:
function refresh() {
$.ajax({
url: '/tower/' + id,
dataType: 'json',
id: { id : job_info.job_id },
success: function(data) {
$('#statustable').html(data);
}
});
setTimeout(refresh, 10000);
console.log('refresh')
};
$(function(){
refresh();
});
还有我的html文件
<th scope="row"></th>
<td> {{ job_info.job_id }}</td>
<td><p class="text-warning" id="statustable">{{ job_info.job_status }}</p></td>
<td><a href="{{ job_info.url }}" target="_blank">Lien vers le stdout</a></td>
当我手动刷新时,作业状态会发生变化,但不会自动刷新。 你能帮忙吗?
谢谢
大卫
【问题讨论】:
-
你的JavaScript中的变量
id和job_info.job_id是从哪里来的? -
job_info.job_id来自 python 函数tower=>job_info = launch_job(template_id, keyword),它是一个字典。并且 id 在 javascript 中声明:id: { id : job_info.job_id } -
不,不是。 JavaScript 在浏览器中运行,Python 在服务器上运行。他们看不到彼此的变数。所以我的猜测是,在您的浏览器控制台中有几个“变量未定义”错误。
-
是的,你是对的,我看到变量未定义,但我该怎么做呢?
标签: javascript ajax flask