我正在尝试将一些表单数据文件发送到我的后端,但我遇到了这个问题,它包含在浏览器(或服务器或其他任何东西)上,一直忽略我定义的边界,并将我的请求有效负载更改为一些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时,问题已经消失了。