【问题标题】:Send File using ajax jquery and read it at back end using Flask使用 ajax jquery 发送文件并使用 Flask 在后端读取它
【发布时间】:2022-01-27 14:45:33
【问题描述】:

我正在尝试使用 ajax jquery 从前端发送文件。

HTML

<label>Upload File </label>
<form method='post' enctype="multipart/form-data">
    <input type='file' id='uploaded_file'>
    <button id="submit-file">Submit</submit>
</form>

JavaScript

<script>
    
    $(document).ready(function(){

        $("#submit-file").click(function(event){

            var form_data = new FormData();
            form_data.append("uploaded_File_Name","MyFile");
            form_data.append("file",$("#uploaded_file").prop('files')[0]);
            

            $.ajax({
                url:"/read_uploaded_file",
                type:"POST",
                contentType: false,
                cache: false,
                processData: false,
                data: form_data,
                success: function(data){
                    console.log("Successful data upload");
                },
                error: function(data){
                    console.log("Error !!");
                }

            });
        });
    });
</script>

在后端,我正在使用烧瓶读取文件。

@app.route('/read_uploaded_file',method=["GET","POST"])
def read_uploaded_file():
    uploaded_file = request.files['file']

我收到一条错误消息POST (URL) 405 (METHOD NOT ALLOWED),我在这里做错了吗?我该如何解决?

【问题讨论】:

    标签: javascript html jquery ajax flask


    【解决方案1】:

    POST (URL) 405 (METHOD NOT ALLOWED) 错误是由于跨域引起的 资源共享 (CORS)。

    要解决这个添加的 CORS 在支持:

    from flask_cors import CORS
    
    app= Flask(__name__)
    CORS(app)
    

    【讨论】:

    • CORS 生成 Bad Request 400 错误,而不是 Method not allowed 405。
    • 奇怪,当我使用上面的行时。错误消失了吗?
    • 你还有method=["GET","POST"]吗?实际上是methods。 method 不应该工作。
    • 请回答问题,我已经解决了这个问题...
    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多