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),也要转化成值。