【问题标题】:Error while file upload via form data using jQuery使用jQuery通过表单数据上传文件时出错
【发布时间】:2020-08-10 19:16:34
【问题描述】:

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

错误详情 - 缺少所需的请求正文。输入消息不可读。

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 使用的边界。它告诉后端边界将是什么而不实际改变它。

标签: jquery file upload


【解决方案1】:

问题的原因是因为你设置了自己的contentType和边界。通过 jQuery AJAX 上传文件时,这是不正确的做法。

正确的做法是在向data 属性提供FormData 对象时使用contentType: false。然后 jQuery 将自己配置 contentType 标头,并保持边界一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 2013-01-20
    • 2010-10-18
    • 1970-01-01
    • 2021-01-07
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多