AJAX错误:“内容类型中没有多部分边界参数”

时间:2018-11-22 07:54:35

标签: javascript jquery ajax

我正在尝试将文件从localhost上载到服务器,但是我在网络控制台中收到以下错误,状态码为500:

  

Content-Type中没有多部分边界参数

我已在我的Nginx反向代理上启用cors。我的AJAX请求是这样的:

var files = document.getElementById('candidatePhoto').files;
if (!files.length) {
  return alert('Please choose a file to upload first.');
}
var file = files[0];

var form = new FormData();
form.append("files", file);

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://example.com",
  "method": "POST",
  "headers": {
    "Content-Type": "multipart/form-data"
  },
  "processData": false,
  "contentType": false,
  "data": form,
  success: function(data) {
    console.log("Success", data);
    addPhoto(data);
  },
  error: function(err) {
    console.log("Error", err);
    alert("Error: " + err);
  }
}

我的HTML表单也有enctype='multipart/form-data'

1 个答案:

答案 0 :(得分:2)

如果设置 xerror_plus_xstd <- RT_model$cptable[which.max(RT_model$cptable["xerror"<= min_xerror_xstd]), "xerror"] ,jQuery将自动应用正确的Content-Type标头来发送多部分数据。包含明确指定内容类型的contentType: false对象将破坏此行为。需要将其删除。将您的AJAX请求设置更改为此:

header