gpt4 book ai didi

javascript - 向 Flask 应用程序发出 AJAX 请求

转载 作者:行者123 更新时间:2023-12-03 07:38:16 27 4
gpt4 key购买 nike

我正在尝试刷新 Flask Web 应用程序中的 Jenkins 构建控制台输出,但是我在使用 jQuery/AJAX 时遇到了麻烦。

正如您在下面看到的,我只是尝试使用刷新按钮来使其工作。理想情况下,我想在计时器上刷新 {{buildinfo}}。

目前我的测试函数/jQuery 返回错误:未捕获的类型错误:非法调用。

这是我在开始这条路径之前使用的 app.py 中的(工作)函数:

@app.route('/buildinfo/<job_id>/<job_number>', methods=['GET', 'POST'])
def buildInfo(job_id, job_number):
try:
console_output = server.get_build_console_output(job_id, int(job_number))
return render_template("buildinfo.html", buildinfo=console_output, job_id=job_id, job_number=job_number)
except Exception as e:
return render_template("buildinfo.html", error=str(e))

这是我用来接收请求并将其发送回客户端的测试函数:

@app.route('/_test')
def foo():
a = request.args.get('a', None, type=str)
b = request.args.get('b', 0, type=int)
bar = server.get_build_console_output(a, int(b))
return jsonify(result=bar)

这是 buildinfo.html:

{% extends "base.html" %}
{% block content %}
<script type="text/javascript" src="{{ url_for('static', filename='jquery-1.12.0.min.js') }}"></script>
<script type="text/javascript">
var $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
</script>

$(function() {
$('a#load').bind('click', function() {
$.getJSON($SCRIPT_ROOT + '/_test', {
a: $('{{job_id}}'),
b: $('{{job_number}}')
}, function(data) {
$("#result").text(data.result);
});
return false;
});
});
</script>

<div class="col-md-10">
<h1>Build Info</h1>
<br>
<p>retrieving {{job_id}}, build number {{job_number}}</p>
<br>
<p>{{buildinfo}}</p>
<br>
<span id="result">?</span>
<a href=# id="load">go</a>
</div>

{% endblock %}

最佳答案

当您应该传递值时,您正在向 ajax 调用提供 HTML 元素。更改此:

a: $('{{job_id}}'),
b: $('{{job_number}}')

对此:

a: {{job_id}},
b: {{job_number}},
...

我不确定您要发送的类型,如果您需要发送字符串 - 在双 mustache 周围加上引号,但这应该可以让您继续。请参阅here对于类似的问题。

关于javascript - 向 Flask 应用程序发出 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518379/

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