【问题标题】:POST 404 (NOT FOUND)发布 404(未找到)
【发布时间】:2019-05-01 23:54:28
【问题描述】:

我在提交表单时收到 404 错误。我尝试通过该表单上传 .png 并在上传后立即提交。然后服务器(Python,Flask)应该能够使用它。有谁知道我的问题出在哪里?

AJAX:

<script>
    document.getElementById("exampleFormControlFile1").onchange = function() {
    console.log("Came here");
    $.ajax({
        url:'/uploadPNG/',
        type:'post',
        data:$('#exampleFormControlFile1').serialize(),
        success:function(){
            console.log("Came here");

            }
});
};
</script>

HTML:

<form method="POST" id="form">
    <div class="form-group">
    <label for="exampleFormControlFile1">Upload your .png template</label>
    <input type="file" class="form-control-file" id="exampleFormControlFile1">
    </div>
</form>

服务器:

@app.route('/uploadPNG/', methods=['POST'])
def upload():
    if request.method == 'POST':
        print("Got png")
    return "gotcha"

提前谢谢你

【问题讨论】:

  • 呃,到目前为止,我的猜测很愚蠢,抱歉。我想你会想要将url:'/uploadPNG/', 更改为url: "{{ url_for('upload') }}"。这行得通吗?
  • 谢谢。现在我收到了那个错误:url_for('upload')%20%7D%7D 405 (METHOD NOT ALLOWED)
  • 您到底在哪里看到“url_for('upload')%20%7D%7D”? :) 尝试也将&lt;input type="hidden" name="csrf_token" value="csrf_token()"&gt; 添加到表单的正文中。但是“url_for('upload')%20%7D%7D”对我来说根本没有意义,你实施我的建议的方式有些不稳定。
  • -- ------------------------------- $.ajax({ url: "{{ url_for('/​​uploadPNG/') } }", -------------------------------- 还是一样的错误
  • "{{ url_for('/uploadPNG/') }}" 不是我在建议中写的。我引用 function name 而不是 route 并没有错(尽管我可以理解为什么您可能会假设,因为我不确定它是否完全直观)跨度>

标签: python html ajax flask web-development-server


【解决方案1】:

我刚刚发现了这个问题。将在这里回答我自己的帖子,以便其他人可以更轻松。 一位魔术师曾经告诉我要经常检查文档。 http://flask.pocoo.org/docs/1.0/patterns/fileuploads/ 然后我不得不像这里一样调整 AJAX 调用: 'append' called on an object that does not implement interface FormData 然后我必须在输入标签中添加名称“文件”。

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 2021-05-11
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    相关资源
    最近更新 更多