我正在使用 Flask。我知道应该通过 @app.route(<path>, methods=['GET', 'POST', ...])
指定允许的方法。但是,即使我在 methods
列表中有“GET”,我仍然收到 405 错误:
奇怪的是,“请求方法”,即“GET”,是“响应头”中“允许”字段中的方法之一,如上所示。这怎么可能?
这是我处理路线 /session/<id>/admin
的函数:
@sessmgr.route('/session/<id>/admin', methods=["GET", "POST"])
def session_admin(id):
... # the details doesn't matter because they are not executed.
我正在使用以下表单提交 GET 请求
{% extends "base.fhtml" %}
{% block title %}Redirecting...{% endblock %}
{% block styles %}
{{super()}}
<link rel="stylesheet"
href="{{url_for('.static', filename='mystyle.css')}}">
{% endblock %}
{% block content %}
<div class="container h-100">
<div class="w-100 p-5">
<h7 class="text-center">Redirecting...</h7>
</div>
</div>
<form action="/session/1000/admin" method="GET" id="the-form">
<input type="submit" id="submit">
{% for key, value in args.items() %}
<input type="hidden" name="{{ key }}" value="{{ value }}">
{% endfor %}
</form>
<script>
$(document).ready(function() {
$("#the-form input[type=submit]").trigger("click");
});
</script>
{% endblock %}
页面一加载,表单就会自动提交。但是,我尝试删除此自动提交并手动单击提交按钮,并且发生了同样的事情。这对我来说没有意义。有任何想法吗?谢谢!
我曾尝试在 method='get'
中设置 <form>
,但没有奏效。