尝试使用 jQuery.ajax 发送 FormData 时出错
Error when trying to send FormData with jQuery.ajax
我有一个文件要发送到服务器。该文件在 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
调用时,它会抛出此错误:
Uncaught TypeError: Illegal invocation
怎么了?请注意,jQuery AJAX 是较早配置的,具有 post 类型、URL 等。
您需要在 AJAX 请求中设置以下属性:
contentType: false,
processData: false
将 contentType
设置为 false
会停止设置 content-type
header。同样,将 processData
设置为 false
将停止对请求的内容进行编码,这在发送 FormData
object.
时需要
有关这些和其他 $.ajax
属性的更多信息,请参阅 jQuery Documentation
我有一个文件要发送到服务器。该文件在 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
调用时,它会抛出此错误:
Uncaught TypeError: Illegal invocation
怎么了?请注意,jQuery AJAX 是较早配置的,具有 post 类型、URL 等。
您需要在 AJAX 请求中设置以下属性:
contentType: false,
processData: false
将 contentType
设置为 false
会停止设置 content-type
header。同样,将 processData
设置为 false
将停止对请求的内容进行编码,这在发送 FormData
object.
有关这些和其他 $.ajax
属性的更多信息,请参阅 jQuery Documentation