【发布时间】:2015-08-24 12:29:10
【问题描述】:
我正在尝试通过 JQuery 中的 AJAX 将文件上传到我的 Flask 后端。
我的 Python 端如下所示:
@app.route('/upload/', methods=['POST', 'GET'])
def upload():
if request.method == 'GET':
return render_template('uploadfile.html')
elif request.method == 'POST':
file_val = request.files['file']
return 'it worked!'
请注意,当我正常提交表单时它会起作用。
我的 HTML 和 AJAX 如下所示:
<form id="upload-file" method="post" enctype="multipart/form-data">
<fieldset>
<label for="file">Select a file</label>
<input name="file" type="file">
</fieldset>
<fieldset>
<button id="upload-file-btn" type="button">Upload</button>
</fieldset>
$(document).on("click", "#upload-file-btn", function() {
var form_data = new FormData($('#input-file')[0]);
$.ajax({
type: 'POST',
url: '/upload/',
data: form_data,
contentType: false,
cache: false,
processData: false,
async: false,
success: function(data) {
alert("UREKA!!!");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
return false;
});
但是,在执行 AJAX 请求时,我收到了 400 响应。我认为这与 contentType 有关,但非常感谢任何指导:)
【问题讨论】:
-
Flask 本身会说什么吗? (正在调试吗?)