我有一个HTTP API,它等待具有这种结构的multipar / form-data消息:
--boundary
Content-Disposition: form-data; name=""Meta""
Content-Type: application/json
{""Title"":""title"",""Description"":""description"",""Number"":3}
--boundary
Content-Disposition: form-data; name=""file""; filename=""fileName""
Content-Type: text/plain
Content-Transfer-Encoding: 7BIT
some text content
--boundary
我正在尝试像这样的FormData消息的结构:
var data = new FormData();
data.append("Meta", "Content-Type: application/json\r\n\r\n" + [JSON.stringify({ Title: "title", Description: "description", Number: 3})] + "\r\n");
data.append('File', document.getElementById("file").files[0]);
$.ajax({
url: myservice,
data: data,
cache: false,
processData: false,
contentType: false,
type: 'POST',
success: function (data, status, req) {
alert("OK"+req);
},
error: function (req, status, error) {
alert("ERROR"+req);
}
});
但是,我无法将内容类型添加到非文件部分。
通过这种方法,我在Content-Disposition和Content-Type之间留下一条剩余的中断线 。
-----------------------------10743159127866
Content-Disposition: form-data; name="Meta"
Content-Type: application/json
{"Title":"title","Description":"description","Number":3}
-----------------------------10743159127866
Content-Disposition: form-data; name="File"; filename="b839f0cc60ac4fb68f826b20cd02873b.pdf"
...