首页 > 上传图片 post 发送成功,看不到发出的内容,后端读取不到

上传图片 post 发送成功,看不到发出的内容,后端读取不到

上代码:

//lic-img == 图片 input 的 id
var uplaod = {
        fileInput: $("#lic-img").get(0),
        fileFilter: [],
        filter: function(files){
            var arrFiles = [];
            for (var i = 0,file;file=files[i]; i++) {
                if (file.type.indexOf('image') === 0) {
                    
                    if (file.size >= 512000) {
                    
                        alert("该文件"+file.name+"过大,请上传小于500kb图片");
                    }else{
                        arrFiles.push(file);
                    }
                }else{
                    alert("该文件"+file.name+"不是图片");
                }
            }
            // console.log(arrFiles);
            return arrFiles;
        },
        getImg: function(e){
            var files = e.target.files || e.dataTransfer.files;

            this.fileFilter = this.filter(files);
            return this;
        },
        onUpImg: function(){
            var that = this;
            $.ajax({
                url: 'url',
                type: 'POST',
                processData:false,
                contentType: false,
                data: {files: that.fileFilter[0]},
                success: function(data){
                    console.log(data)
                }
            })
        },
        init: function(){
            var that = this;
            if (this.fileInput) {
                this.fileInput.addEventListener("change",function(e){
                    that.getImg(e);
                    that.onUpImg();
                },false);
            }

        }
    }
    uplaod.init();
})



为什么发送请求的时候,上传的数据为空呢?发送成功200

HTML里面的form表单属性有这个enctype="multipart/form-data",然后发送图片上传到后端的时候,后端给拦截了,所以一直没收到,后端以为我发的是空的。他刚解决,供大家参考


$.ajax需要注意的一些地方:

1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。

2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit

【热门文章】
【热门文章】