我正在尝试使用图片发布请求,但是当我将其添加为参数Uncaught TypeError: Illegal invocation
时,我会不断收到错误消息。我已经尝试了这个和.serialize()
,但似乎没有任何效果。
var description = $('#description').val();
var title = $('#title').val();
var fileInput = $("#image")[0];
var file = fileInput.files[0];
var image = new FormData();
image.append('image', file);
$.ajax({
type: 'POST',
url: 'insert.php',
data: {
desc: description,
title: title,
image:image,
longitude: currentMarker.lng(),
longitude: currentMarker.lat(),
},
success: function (answer) {
}
})
答案 0 :(得分:0)
您不能将FormData
放入正在发送的参数之一,它必须是整个data
值。所以它应该是:
var image = new FormData();
image.append('image', file);
image.append('desc', description);
image.append('title', title);
image.append('longitude', currentMarker.lng());
image.append('latitude', currentMarker.lat());
$.ajax({
type: 'POST',
url: 'insert.php',
data: image,
processData: false,
contentType: false,
success: function(answer) {
...
}
});
发送FormData
时,您需要告诉jQuery不要尝试将数据参数从对象转换为带有processData: false
的URL编码字符串。