我正在尝试轮询复选框的状态(这是在 JS 中每三秒完成一次)。此解决方案返回“无”(参见下面的代码);两个打印输出(带有“args”和“form”)都返回“无”。我期待真/假,这取决于复选框的布尔状态。
索引.html:
{% extends "layout.html" %}
{% block content %}
<div id="results" class="container">{{data_load|safe}}</div>
<input id='testName' type='checkbox' value='Yes' name='testName'>
{% endblock %}
和相关的烧瓶应用程序片段:
@app.route('/', methods = ['GET', 'POST'])
def index():
return render_template('index.html', data_load=timertry())
@app.route('/_timertry', methods = ['GET', 'POST'])
def timertry():
print request.args.get('testName')
print request.form.get('testName')
return "some html going into 'results' div.."
JavaScript轮询函数(改编自此处):
$(document).ready(function() {
$.ajaxSetup({cache : false});
setInterval(function() {
$('#results').load('/_timertry?' + document.location );
}, 3000); // milliseconds!
});
这应该很简单,但是我研究过的 SO 解决方案(例如,使用 jquery、调整flask/ajax 示例等)都不起作用。
编辑:遵循标记的建议(包括 javascript)并添加
print request.values
index.html 返回(在 Aptana 的控制台上看到):
CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([])])
显然,请求似乎是空的。发布请求(按下复选框时)记录为:
127.0.0.1 - - [03/Oct/2013 00:11:44] “POST /index HTTP/1.1”200 -
这里有什么想法吗?