jQuery AJAX’multipart/form-data’不发送数据?

前端之家收集整理的这篇文章主要介绍了jQuery AJAX’multipart/form-data’不发送数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我失去了为什么我不能让jQuery传递上传数据,因为AJAX对象看起来正确配置,并且正在发送正确的Content-Type / MIME类型头。

我已经尝试了两种单独的请求形式 – 一种包含在一个文字中的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时,唯一的反应(查看网络选项卡和控制台)只是两个空数组…

解决方法

您必须传递FormData对象作为数据参数
var request = new FormData();                   
$.each(context.prototype.fileData,obj) { request.append(i,obj.value.files[0]); });    
request.append('action','upload');
request.append('id',response.obj.id);
$.ajax({

    type        : 'POST',url     : context.controller,contentType : false,error       : function(r) { alert('jQuery Error'); }

});

猜你在找的jQuery相关文章