首页 > 解决方案 > 使用jQuery通过表单数据上传文件时出错

问题描述

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

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

错误截图

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

通话成功

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);
  }
});

标签: jqueryfileupload

解决方案


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

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


推荐阅读