$.ajax上传图片会报 Uncaught TypeError: Illegal invocation 错误,这里我只需要把参数转换成 FormData 的形式,然后把processData数据处理给关闭
FormData介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData
processData:
(默认: true) 默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
// 改变本地图片
changeLocalImg: function(e) {
var _this = this;
var formData = new FormData();
formData.append('file', e.target.files[0]);
$.ajax({
type: 'post',
url: '/api/upload/image',
data: formData,
contentType: false, // 把传输的内容类型为:multipart/form-data
processData: false, // 禁止把参数对象转成查询字符串
beforeSend: function() {
layer.load(1);
},
success: function(res) {
if(res.status) {
_this.dialogs.uploadImg.visible = false;
} else {
layer.msg(res.message, {time: 2000, icon: 5});
}
},
complete: function() {
layer.closeAll('loading');
}
});
},
写到最后,欢迎关注作者:http://fenxianglu.cn/
网友评论