原生 ajax 提交form表单,上传文件解决方案

发布时间: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(){
        	//
        }
    });


4 +1

版权声明

 jquery  前端  源码  javascript

 请文明留言

0 条评论