尝试使用jQuery.ajax发送FormData时出错

问题描述:

我有一个要发送到服务器的文件。该文件正在FormData对象中传递,而不是路径URI。这是我使用的代码:尝试使用jQuery.ajax发送FormData时出错

let formData = new FormData(); 
formData.append('enctype', 'multipart/form-data'); 
formData.append('mode', 'fileInsert'); 
formData.append('conId', 'asdasd5535asf'); 
formData.append('user', 'user2422424'); 
formData.append('filesNumber', 1); 
formData.append('msgType', 'fil'); 
formData.append('file0', file); 

$.ajax({ 
    data: formData, 
    success: function (a, s) { 
     debugger; 
    } 
}); 

当代码到达$.ajax称呼它抛出这个错误:

Uncaught TypeError: Illegal invocation

有什么不对?请注意,jQuery AJAX的配置较早,包括帖子类型,URL等。

+0

尝试添加下列属性'$ .ajax'电话:'的contentType:假的,过程数据:FALSE' –

+0

让我问我的服务器的家伙如果有任何东西正在收到,它现在不会抛出错误 –

+0

它的工作原理,@RoryMcCrossan请给出答案并解释它的作用 –

您需要在您的AJAX请求设置以下属性:

contentType: false, 
processData: false 

设置contentTypefalse停止被设置content-type头。同样,将processData设置为false将停止正在编码的请求的内容,这在发送FormData对象时需要。

关于这些和其他$.ajax属性的详细信息,请参阅jQuery Documentation