jquery - 使用jQuery通过表单数据上传文件时出错
问题描述
使用 jQuery 通过 Formdata 上传文件时遇到错误。
错误详细信息 - 缺少所需的请求正文。输入消息不可读。
- 为什么边界值不同?
- 为什么服务失败?我的表单数据有问题吗?请与成功截图进行比较。
var formData = new FormData();
formData.append('object', JSON.stringify({
"properties": {
"object_name": "Test Doc4",
"r_object_type": "eri_wg_doc",
"eri_document_type": "Agenda",
"eri_conf_class": "Ericsson Confidential",
"eri_audience": "Workgroup Members - Restricted",
"ignore-number": false,
"allow-new-version": false
}
}));
formData.append('content', files[0]);
var aData = jQuery.ajax({
type: "POST",
contentType: "multipart/form-data;boundary=----LGZlKL2faC2ilpCJ",
headers: {
"Authorization": "Basic " + btoa("username" + ":" + "password"),
"accept": "application/json"
},
url: "https://domain/repositories/folders/0b004cff89977940/documents?skipSSO=true",
processData: false,
data: formData,
success: function(data, status) {
console.log(data);
}
});
解决方案
问题的原因是因为您设置了自己的contentType
和边界。通过 jQuery AJAX 上传文件时,这不是正确的做法。
正确的做法是在向属性contentType: false
提供FormData
对象时使用data
。然后,jQuery 将contentType
自己配置标头,并保持边界一致。
推荐阅读
- php - 用于运行 PHP 服务的 XAMPP 虚拟主机
- python - Google Sheets API - Python - 不带括号的单元格的返回值
- android - Android 代理配置后无法上网
- python - python kivy NameError:名称'_name_'未定义
- google-cloud-platform - 云函数中的 getSignedUrl Promise 权限被拒绝
- python - 如何为每第 n 个句子换行?
- python - PyQt5 - 第二个窗口中的按钮在单击时不执行操作
- javascript - 如何在 django 中使用 @ 提及用户
- sql - Postgres:整数范围的唯一约束
- excel - 将数据转移到不同的列并“刷新”它们以占用空白空间