使用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请求数据,很多人都会,比如说: $.post(path,{data:data},function...
    WwKk_13c2阅读 3,521评论 0 8
  • XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以...
    冇得感情阅读 1,068评论 0 0
  • 前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用...
    雷波_viho阅读 832评论 0 1
  • 安装 mongodb 到 mongodb 的官网下载后安装。以 Windows 下的使用为例。在安装路径 C:\P...
    焉知非鱼阅读 477评论 0 2
  • 早上走在公司的小道上,看见保洁阿姨在清扫人行道上的蚯蚓。不一会儿,阿姨的畚斗里已铺满了很多的蚯蚓。阿姨准备把这些蚯...
    往事0228阅读 154评论 0 1