我不知道为什么我无法让 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 时,唯一的响应(同时查看网络选项卡和控制台)再次只是两个空数组......