带有formdata的Javascript XMLHttpRequest发送空体

时间:2016-10-15 17:54:02

标签: javascript ajax xmlhttprequest multipartform-data form-data

我尝试发送这样的文件

 //  ... adding items to myArray
 [myArray insertObject: yadayada ...];

 // then let the controller rearrange the objects
 [arrayCtrl rearrangeObjects];  

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

Avatar field is empty

我尝试使用不同的文件和不同的请求方法,它总是一样的。

我也尝试了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); 并且发送正确,我可以在请求正文中看到“某个字符串”,问题似乎与文件有关。

我做错了吗?

由于

1 个答案:

答案 0 :(得分:1)

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对象记录到控制台时,您仍然无法查看数据。