使用 jQuery 通过表单数据上传文件时出错

Error while file upload via form data using jQuery

我在使用 jQuery 通过 Formdata 上传文件时遇到错误。

Error details - Required request body is missing. The input message is not readable.

Error Screenshot

  1. 为什么边界值不同?
  2. 为什么服务失败了?我的表单数据有问题吗?请与成功截图对比。

Successful call

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.

上传文件时,这是不正确的做法

正确的做法是在向 data 属性 提供 FormData object 时使用 contentType: false。 jQuery 然后将配置 contentType header 本身,并保持边界一致。