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

Js代码:

    varformData =new FormData();

            formData.append('userName',$scope.userName);

            formData.append('file',$scope.file);

            varurl ="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

你可能感兴趣的:(使用AJAX实现文件上传时Illegal invocation错误)