【问题标题】:405 : Method not allowed (AJAX query to Flask)405 : Method not allowed (AJAX 查询到 Flask)
【发布时间】:2016-06-15 21:35:31
【问题描述】:

我已经看到了很多关于这个的问题,但我无法调试这个。

我的 ajax 查询是这样的:

    function add_to_pipeline(){
        // console.log("In function");
        var mySelect = document.getElementById("select_list");
        var operator = mySelect.options[ mySelect.selectedIndex ].label;
        // console.log(mySelect.options[ mySelect.selectedIndex ].value);
        $("#pipeline_list").append('<li> '+ operator +'</li>');
        submit_to_server();
    }

    function submit_to_server(){
        var img = new FormData();
        img.append('file',$("#preview_list li:last-child")[0]);

        // Debugging statement
        //$("#preview_list li:last-child").dialog();
            $.ajax({
            type : "POST",
            url : "/_process",
            data : img,
            contentType: false,
            cache: false,
            processData: false,
            success: function(data) {
                alert(data['result']);
            }
        });
    }

HTML 是:

   <select id="select_list">
             {% for l in list %}
                 <option value={{ l.index }}>{{ l.name }}</option>
             {% endfor %}
   </select>
   <input type="button" id="p_submit" value="Add to pipeline" onclick="add_to_pipeline()">

Flask 文件:

@app.route('/_process')
def process():
    img = request.files['file']
    return jsonify(result="Image received")

我将 &lt;ul&gt; 的最后一个 &lt;li&gt; 元素作为输入文件(图像)并通过 AJAX 发送。

【问题讨论】:

    标签: javascript jquery python ajax flask


    【解决方案1】:

    您需要指定视图中允许的方法(默认为 GET),例如:

    @app.route('/_process', methods=['GET', 'POST'])
    

    我认为在你的情况下你不需要 GET,所以很简单:

    @app.route('/_process', methods=['POST'])
    def process():
        img = request.files['file']
        return jsonify(result="Image received")
    

    这是文档中的示例: http://flask.pocoo.org/docs/0.10/quickstart/#http-methods

    【讨论】:

    • 我希望这会在我的记忆中燃烧。
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2021-12-12
    • 2016-04-12
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多