我想在我的Flask Web應用程序中刷新Jenkins構建控制檯輸出,但是我在使用jQuery/AJAX時遇到問題。向Flask應用程序發出一個AJAX請求
正如你可以看到下面,我只是想使用刷新按鈕來得到這個工作。理想情況下,我想刷新定時器上的{{buildinfo}}。
目前我的測試函數/ jQuery返回錯誤:Uncaught TypeError:非法調用。
繼承人從我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 %}
非常感謝 – Gillespie