开发过程中,在遇到form中含有文件上传时候,通过ajax与后台交互,后台不能获取到传过去的文件,试了很多方法,最终用这段代码解决了,代码如下
html代码:
<form id="importForm">
<input type="file" name="file" id="file">
</form>
js代码:
var form = document.getElementById("importForm");//importForm是form的id
var formdata = new FormData(form);//重点
$.ajax({
url : baseurl+'/package/uploadPackage',
type : 'post',
contentType: false, //不设置数据类型,必须
processData: false,//禁止序列化数据,必须
dataType :'json',
data:formdata,
xhrFields: {withCredentials: true},//跨域,可根据需要使用
success : function(result) {
if(result.status.code==200){
layer.msg(result.status.statusMsg, {
time: 1200 //2秒关闭(如果不配置,默认是3秒)
}, function(){
//do something
layer.closeAll();
});
}
}
});
return false;//这整段代码是写在success的回调里边的,return false可以阻止表单提交