Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用jQueryAjax和python时会出现500个内部服务器错误?_Jquery_Python_Ajax_Bottle_Internal Server Error - Fatal编程技术网

为什么使用jQueryAjax和python时会出现500个内部服务器错误?

为什么使用jQueryAjax和python时会出现500个内部服务器错误?,jquery,python,ajax,bottle,internal-server-error,Jquery,Python,Ajax,Bottle,Internal Server Error,我试图执行这篇AJAX文章,但由于某种原因,我得到了一个Server500错误。我看不出python代码中有任何错误。因此,问题似乎出现在回调上。我正在发布我目前使用的代码。有人吗 Html表单部分是如何编写表单的前端Html部分 <form method="post" id="uploadform" onsubmit="formupload()" enctype="multipart/form-data"> <div class="form-group">

我试图执行这篇AJAX文章,但由于某种原因,我得到了一个Server500错误。我看不出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请求接收数据:

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.'})

您正在使用ajaxing而不阻止提交

删除
onsubmit=“formupload()”
并将脚本更改为该脚本,前提是该脚本首先可以工作

也要读一读:

$(函数(){
$(“#上传表单”)。在(“提交”上,函数(e){
e、 预防默认值();
$.ajax({
url:“/uploadEmpData”,
键入:“POST”,
数据:$('#uploadform')。序列化(),
数据类型:“json”,
成功:功能(数据){
控制台日志(数据);
警报(“文件上传成功”);
},
错误:函数(数据){
警报(“上传失败”);
//console.log(错误);
}
});
});
});

您可以使用而不是“提交”,从函数中删除event.preventDefault(),然后重试。如果仍然出现错误,则检查您发送的序列化数据。

500错误表示问题出在服务器上的Python代码中。请查看网络选项卡,以了解请求引起的错误的说明。还请注意,您正在对全局
事件
对象调用
preventDefault()
,可能需要将其更改为表单提交事件。您也不能序列化文件输入。您需要使用FormDataServer发送一个多部分请求。这本身不会导致500错误。事实上,有很多问题,比如试图序列化文件输入。如果提交表单,可能会中断Ajax抱歉,但是上面的答案中没有打印type=“button”。所以我的意思是说使用input type='button'而不是“submit”,并从函数中删除event.preventDefault()。
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.'})