如何在我的多部分/表单数据请求中指定边界?



我正在尝试将一些表单数据文件发送到我的后端,但我遇到了这个问题,它包含在浏览器(或服务器或其他任何东西)上,一直忽略我定义的边界,并将我的请求有效负载更改为一些WebKitFormBoundary 随机生成的边界。

这是我在我的请求中定义的

.factory('FilesPaymentsImportationsUploadResource', function ($resource, PAYMENTS_API_URL) {
return $resource(PAYMENTS_API_URL + '/v1/payment-files/upload/', { id: "@id" }, {
save: {
method: "POST",
transformRequest: angular.identity,
headers: { 'Content-Type': 'multipart/form-data; boundary=----border----',
'Accept': 'application/json'
}
}
});
})

所以,我希望在我的请求有效负载上看起来像这样:

----边境---- 内容处置:表单数据;名称="file_content";文件名="文本.txt" 内容类型:文本/纯文本

----边境---- 内容处置:表单数据;名称="from_user">

测试1

----边境---- 内容处置:表单数据;名称="to_user">

测试2

----边境----

但相反,我有

------WebKitFormBoundary7GOXLp9hM5A0TLgS Content-Disposition: form-data; name="file_content"; filename="text.txt" 内容类型: 文本/纯文本

------WebKitFormBoundary7GOXLp9hM5A0TLgS Content-Disposition: form-data; name="from_user">

博尼娜2 ------WebKitFormBoundary7GOXLp9hM5A0TLgS Content-Disposition: form-data;名称="to_user">

凯奥泰斯特 ------WebKitFormBoundary7GOXLp9hM5A0TLgS--

我的请求标头似乎是正确的,正如我所料,我发送:

内容类型:多部分/表单数据;边界=----边框----

但这给我带来了麻烦,因为我定义了一个边界值,而表单数据有另一个值,这导致服务器丢失表单并说我正在发送一个空的表单数据。

嗯,它似乎与角度$resorce有关。当我更改为$http时,问题已经消失了。

最新更新