我正在尝试执行此AJAX帖子但由于某种原因我收到服务器500错误。我在python代码中看不到任何错误。所以问题似乎在于回调。我发布了我目前正在使用的代码。任何人吗?
Html表单部分是表单编写方式的前端html部分
<form method="post" id="uploadform" onsubmit="formupload()" enctype="multipart/form-data">
<div class="form-group">
<input type="file" id="exampleInputFile" name="file">
</div>
<div class="form-group ">
<button type="submit" class="btn btn-primary pull-right" id="upload_button">Upload File</button>
</div>
</form>
对python代码进行AJAX调用并警告'upload fail':
function formupload(){
event.preventDefault();
$.ajax({
url: '/uploadEmpData',
type: 'POST',
data: $('#uploadform').serialize(),
dataType: 'json',
success: function(data){
alert(data);
alert('file uploaded successfully');
},
error: function(data){
alert('upload fail');
//console.log(error);
}
});
}
创建函数并从AJAX请求接收数据的python瓶子部分:
def uploadEmpData():
data = request.files.get('file')
data.save('files/',overwrite=True)
if data and data.file:
return json_dumps("File uploaded successfully")
return json_dumps({'error':'Permission Denied.'})
答案 0 :(得分:0)
在没有阻止提交的情况下,你就是在忙碌。
删除onsubmit="formupload()"
并将脚本更改为此,假设它首先可以正常工作。
也读一读:How can I upload files asynchronously?
$(function() {
$("#uploadform").on("submit", function(e) {
e.preventDefault();
$.ajax({
url: '/uploadEmpData',
type: 'POST',
data: $('#uploadform').serialize(),
dataType: 'json',
success: function(data) {
console.log(data);
alert('file uploaded successfully');
},
error: function(data) {
alert('upload fail');
//console.log(error);
}
});
});
});
答案 1 :(得分:0)
您可以使用而不是&#34;提交&#34;并从您的函数中删除event.preventDefault()然后尝试。如果仍然出现错误,请检查您发送的序列化数据。