不允许 Flask 405 方法 - 尽管允许

时间:2021-05-10 13:17:48

标签: flask

我正在使用 Flask。我知道应该通过 @app.route(<path>, methods=['GET', 'POST', ...]) 指定允许的方法。但是,即使我在 methods 列表中有“GET”,我仍然收到 405 错误:

enter image description here

奇怪的是,“请求方法”,即“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>,但没有奏效。

0 个答案:

没有答案
相关问题