需要注意的地方主要有两个:
一是contentType的值,需要将contentType设置为false或undefined;二是需要将processData设置为false
伪代码:
$("input[type='file']").on("change", function(){
if(this.files){ // 因为上传文件点击取消也会触发change时间,所以需要判断是否选择了文件
var file = this.files[0];
var fd = new FormData();
fd.append("fileInfo", file);
$.ajax({
"url": ...,
"type": ...,
"contentType": false,
"processData": false,
"data": fd,
...
});
}
});
因为processData默认值为true,默认情况下会将发送的数据转换为对象,如果不希望FormData进行转换,可将processData设置为false。