我不知道为什么jQuery无法传递上传数据,因为AJAX对象似乎已经正确配置,并且正确的Content-Type/MIME-Type头已被发送。我尝试了两种不同的请求方式——一种是包含在文字中的FormData对象,另一种是直接传递FormData对象。但无论哪种方式,都无法传递任何内容,$_FILES和$_POST都为空数组。我希望使用的理想请求如下:
我将附上下面的代码:
var files = new FormData();
$.each(context.prototype.fileData, function(i, obj) { files.append(i, obj.value.files[0]); });
var request = { action: 'upload', id: response.obj.id, data: files };
$.ajax({
type : 'POST',
url : context.controller,
data : request,
processData : false,
contentType : 'multipart/form-data',
mimeType : 'multipart/form-data',
success : function(r) {
console.log(r);
//if (errors != null) { } else context.close();
},
error : function(r) { alert('jQuery Error'); }
});
再次尝试导出 $_FILES 和 $_POST,但在查看网络选项卡和控制台后,唯一的响应是两个空数组...
contentType
更改为false - Musa$_POST
和$_FILES
中仍然没有数据。 - Julian