Javascript 带有发送空主体的表单数据的 XMLHttpRequest

Javascript XMLHttpRequest with formdata sending empty body

我试过这样发送文件

var formData = new FormData();
formData.append("avatar", document.getElementById('imageFile').files[0]);

var request = new XMLHttpRequest;
request.open("PATCH", "http://localhost:9090/users/me/avatar");
request.send(formData);

但是,无论我尝试什么,应该发送的所选文件的实际内容仍然是空白。这是 Chrome 的网络选项卡

的屏幕截图

我尝试了不同的文件和不同的请求方法,结果总是一样。

我也试过 formData.append("testfield", "some string"); 并且发送正确,我可以在请求正文中看到 "some string",问题似乎与文件有关。

我是不是做错了什么?

谢谢

PATCH 是一种用于 API 更改而不是发送文件的方法。
您应该使用 POST 或 PUT 上传文件

var formData = new FormData();
formData.append("avatar", document.getElementById('imageFile').files[0]);

var request = new XMLHttpRequest;
request.open("POST", "http://localhost:9090/users/me/avatar");
request.send(formData);

此外,将 formData 对象记录到控制台时,您将看不到数据。