我试图在Jquery中使用Ajax发送文件,之前创建一个FormData。这是我的代码:
var inputFileImage = document.getElementById('uploadImage');
var file = inputFileImage.files[0];
var data = new FormData();
data.append('archivo',file);
jQuery.ajax({
url: '/services/rpc.php',
type: 'post',
data: {functionName: 'saveProfileImage', data : data},
contentType:false,
processData:false,
})
.done(function(response) {
alert(response);
}.bind(this))
.fail(function(response) {
alert('Sorry, there was an unexpected error, please try again later.\n\nInformation about the error:\n'+response);
});
此ajax始终转到fail
函数,如果我将processData
更改为true
,则返回我的另一个错误错误:TypeError:'追加&# 39;调用了一个没有实现接口FormData的对象。
感谢您的帮助!
答案 0 :(得分:2)
必须关闭processData才能发送二进制数据。 FormData元素完全用作二进制数据,而data:{}
需要处理。在这种情况下,必须将附加参数附加到formData!
var data = new FormData();
data.append('archivo',file);
data.append('functionName','saveProfileImage');
jQuery.ajax({
url: '/services/rpc.php',
type: 'post',
data: data,
contentType:false,
processData:false,
});