Jul*_*ian 22 ajax jquery file-upload multipartform-data
我不知道为什么我不能让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'); }
});
Run Code Online (Sandbox Code Playgroud)
当我尝试导出$ _FILES和$ _POST时,唯一的响应(查看网络选项卡和控制台)只是两个空数组......
Mus*_*usa 27
您必须将FormData对象作为数据参数传递
var request = new FormData();
$.each(context.prototype.fileData, function(i, obj) { request.append(i, obj.value.files[0]); });
request.append('action', 'upload');
request.append('id', response.obj.id);
$.ajax({
type : 'POST',
url : context.controller,
data : request,
processData : false,
contentType : false,
success : function(r) {
console.log(r);
//if (errors != null) { } else context.close();
},
error : function(r) { alert('jQuery Error'); }
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43662 次 |
| 最近记录: |