Ajax提交含有文件type='file'标签的表单时候,后台获取不到值

开发过程中,在遇到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可以阻止表单提交

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容