В моем приложении 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)
против (window.location.href)
против (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>
Любая помощь будет принята, оставьте комментарий, если вам требуется больше фрагментов кода.
edit: код в конечной точке / 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, ниже обработчик
@app.route('/lotfinder',methods = ['POST', 'GET'])
def car1():
if request.method == 'GET':
return render_template("car1.html")