【发布时间】:2018-10-08 07:52:13
【问题描述】:
在我的 Flask 应用程序中,我制作了一堆 a hrefs,它将用户重定向到另一个包含输入表单的页面。此输入表单将通过 this.innerHTML 预填充它可以在除 Firefox 之外的所有浏览器上完美运行,我在其中得到 ValueError: View function did not return a response 。
{% for x in text %}
<p>{{ x["address"] }} : <strong><a href="">{{ x["car_park_no"] }}</a></strong> </p>
{% endfor %}
这对我来说特别令人困惑,因为我在 Google 和 SO 上到处检查并尝试了所有可能与 Firefox 相关的修复...(window.location) vs (window.location.href) vs (window.location.assign) vs make function return false
我了解 SO 上存在一些问题,即仅当函数不返回响应时才会发生此错误 - 但是我的函数在这里已经返回了响应。而且这个错误不会出现在 Chrome/Internet Explorer/Safari/Edge 上,只会出现在 Firefox 上。
<script>
// add query strings
window.onload = function() {
var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
event.preventDefault();
window.location = "/lotfinder?address=" + this.innerHTML;
}, false;
}
}
</script>
任何帮助将不胜感激,如果您需要更多代码 sn-ps,请发表评论。
编辑:/lotfinder 端点处的代码
<h1>carpark.py</h1>
<form action = "/carpark" method = "POST">
<p>Carpark No: <input type = "text" id="carpark-input" name = "Carpark" required></p>
<p><input type = "submit" value = "submit"></p>
</form>
</body>
<script>
const carparkInput = document.getElementById("carpark-input");
// use new URLSearchParams API instead of ugly regex querystring parsing
window.onload = function() {
var urlParams = new URLSearchParams(window.location.search);
carparkInput.value = urlParams.get('address');
}
</script>
上面是HTML,下面是Handler
@app.route('/lotfinder',methods = ['POST', 'GET'])
def car1():
if request.method == 'GET':
return render_template("car1.html")
【问题讨论】:
标签: javascript flask jinja2 query-string window.location