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

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

 

posted @ 2017-06-17 13:57  ~~Cc  阅读(45213)  评论(1编辑  收藏  举报