我有一个文件要发送到服务器。该文件在FormData对象中传递,而不是作为路径URI传递。这是我正在使用的代码:
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
时,会抛出此错误:
未捕获的TypeError:非法调用
有什么问题?请注意,之前正在配置jQuery AJAX,包括帖子类型,URL等。
答案 0 :(得分:3)
您需要在AJAX请求中设置以下属性:
contentType: false,
processData: false
将contentType
设置为false
会停止设置content-type
标头。同样,将processData
设置为false
将停止正在编码的请求的内容,这在发送FormData
对象时是必需的。
有关这些和其他$.ajax
属性的详细信息,请参阅jQuery Documentation