发布时间:2019-10-16作者:laosun阅读(2857)
Ajax提交form表单,上传文件解决方案
需要注意的是:input file 如果使用了js操作,比如.html、.before、或者.after等进行了操作,则不支持提取。
var formData = new FormData(); formData.append("myfile", $("#XXX")[0].files[0]);//文件对象 //循环提取form表单中的值 var jsonData = $(".validate-form").serializeArray(); if(jsonData!=null && jsonData.length>0){ for(var key in jsonData){ //排除掉某些不需要的值 if(jsonData[key].name!=null && jsonData[key].name!='' && jsonData[key].name!='file-'+fileId && jsonData[key].name!='input-file-'+fileId){ formData.append(jsonData[key].name, jsonData[key].value); } } } $.ajax({ type : "post", url : url, data : formData, async: false, cache: false,//不缓存数据 processData: false,//不处理数据 contentType: false,//不设置内容类型 success : function(result){ console.log(result); }, headers : {'jdata' : attach()}, beforeSend: function(data){ //发送之前的一些特效,暂时不用 }, complete: function(){ //请求返回的一些处理,暂时不用 }, error:function(){ // } });
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/2f2c66c536354c44a1dfb22739350f36.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
关键字: jquery 前端 源码 javascript