使用AJAX实现文件上传时Illegal invocation错误

javascript/jquery

浏览数:108

2019-1-13

Js代码

var formData = new FormData();
            formData.append('userName',$scope.userName);
            formData.append('file',$scope.file);
            
            var url ="http://localhost:8080/SpringMVCT/rest/v1/uploader";            
            $.ajax({
                type:'POST',
                url:url,
                data:formData,
                contentType:undefined,
                mimeType:"multipart/form-data",
                success:function(data){
                    
                }
            });

看错误提示信息应该是输入参数错误,检查代码可能是$scope.file这个File类型的参数被预先处理了,于是设置$.ajax 的processData:false,请求成功

$.ajax({
                type:'POST',
                url:url,
                data:formData,
                contentType:undefined,
                processData:false,
                mimeType:"multipart/form-data",
                success:function(data){
                    
                }
            });

processData用于对data参数进行序列化处理,默认值是true。默认情况下发送的数据将被转换为对象,如果不希望把File转换,需要设置为false

原文地址:https://www.cnblogs.com/cici20166/p/7040083.html