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

标签 javascript jquery ajax multipartform-data

我有一个文件想要发送到服务器。文件在 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 是在之前配置的,包括帖子类型、URL 等。

最佳答案

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

contentType: false, 
processData: false

contentType 设置为 false 会停止设置 content-type header 。同样,将 processData 设置为 false 将停止对请求的内容进行编码,这在发送 FormData 对象时需要。

有关这些和其他 $.ajax 属性的更多信息,请参阅 jQuery Documentation

关于javascript - 尝试使用 jQuery.ajax 发送 FormData 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396031/

相关文章:

javascript - onclick 方法应用于图像对象导致转换到 "no"页面

javascript - 替换下一个出现的字符串

javascript - ajax 在页面刷新之前不会加载新的 sql 结果

javascript - CKEditor: [CKEditorWebpackPlugin] 错误: 编译期间发现太多 JS 资源

javascript - 在 div 标签内打开 URL

javascript - 为什么下面的 Javascript 代码(设置 CSS 样式)不起作用?

jquery - 显示 mask 下的图像 css/javascript

jquery - iframe 不会以移动设备为中心?

javascript - 如何修复点击事件。即使调试没有指向它,它也不起作用

javascript - 在 Razor 部分 Html BeginForm 中停止回发时的页面移动