首页 > 解决方案 > FormData append 是追加文件后的空对象

问题描述

这是我尝试附加并发送到服务器的文件(console.log):

...
console.log(myFile); // brings this:

File(1921512) {name: "2018-10-07_23-53-14.png", lastModified: 1538945346813, lastModifiedDate: Sun Oct 07 2018 23:54:06 GMT+0300 (Israel Daylight Time), webkitRelativePath: "", size: 1921512, …}
lastModified: 1538945346813
lastModifiedDate: Sun Oct 07 2018 23:54:06 GMT+0300 (Israel Daylight Time) {}
name: "2018-10-07_23-53-14.png"
size: 1921512
type: "image/png"
webkitRelativePath: ""
__proto__: File

我像这样附加这个文件:

let formData = new FormData();
formData.append(0, myFile);

然后我这样做:

console.log(formData); // FormData {}__proto__: FormData

那里没有附加文件。

当我尝试将此发送到服务器时,Http 请求标头的内容类型不包含任何内容类型:

请求标头:

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6,la;q=0.5
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: POST
Cache-Control: no-cache
Connection: keep-alive
Host: localhost:3000
Origin: http://localhost:8080
Pragma: no-cache
Referer: http://localhost:8080/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

我试图用实体记录这个,但这仍然不起作用 - 无论如何服务器没有得到任何文件。

标签: javascriptajaxxmlhttprequestmultipartform-data

解决方案


我添加了:transformRequest: angular.identity在请求参数中。


推荐阅读