ajax上传文件时非法调用问题

Jquery实现Ajax异步提交时报错非法调用,应该是输入参数错误.

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){
            //  success
       }
   });

$scope.file这个File类型的参数被预先处理,于是设置$.ajax 的processData:false,就会请求成功。

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

processData用于对data参数进行序列化处理,默认值是true。默认情况下发送的数据将被转换为对象,如果不希望把File转换,需要设置为false。同样在ajax提交其他请求时,如果数据是其他表单的内容(比如文本类型的input),也要转化成值。

你可能感兴趣的:(ajax上传文件时非法调用问题)