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
对象记录到控制台时,您将看不到数据。
我试过这样发送文件
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
对象记录到控制台时,您将看不到数据。