【发布时间】: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”? :) 尝试也将
<input type="hidden" name="csrf_token" value="csrf_token()">添加到表单的正文中。但是“url_for('upload')%20%7D%7D”对我来说根本没有意义,你实施我的建议的方式有些不稳定。 -
-- ------------------------------- $.ajax({ url: "{{ url_for('/uploadPNG/') } }", -------------------------------- 还是一样的错误
-
"{{ url_for('/uploadPNG/') }}"不是我在建议中写的。我引用 function name 而不是 route 并没有错(尽管我可以理解为什么您可能会假设,因为我不确定它是否完全直观)跨度>
标签: python html ajax flask web-development-server