Как указать границу в моем запросе multipart / form-data?

Я пытаюсь отправить некоторые файлы данных формы на свой бэкэнд, и у меня есть эта проблема, которая заключается в том, что браузер (или сервер, или что-то еще) продолжает игнорировать границу, которую я определил и меняет в своем запросе полезную нагрузку на некоторую случайную сгенерированную 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' } } }); })

Итак, я ожидал, что мой RequestPayload будет выглядеть так:

---- граница ---- Content-Disposition: form-data; name = "file_content"; filename = "text.txt" Content-Type: text / plain

---- граница ---- Content-Disposition: form-data; name = "from_user"

test1

---- граница ---- Content-Disposition: form-data; name = "to_user"

test2

----граница----

Но вместо этого у меня

------ WebKitFormBoundary7GOXLp9hM5A0TLgS Content-Disposition: form-data; name = "file_content"; filename = "text.txt" Content-Type: text / plain

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

Bonina2 ------ WebKitFormBoundary7GOXLp9hM5A0TLgS Content-Disposition: form-data; name = "to_user"

Caioteste ------ WebKitFormBoundary7GOXLp9hM5A0TLgS--

Заголовок моего запроса кажется правильным, как я и ожидал, я отправляю:

Тип содержимого: multipart / form-data; граница = ---- граница ----

Но это вызывает у меня проблемы, поскольку я определяю одно значение для границы, а данные формы имеют другое, что приводит к тому, что сервер теряет форму и говорит, что я отправляю пустые данные формы.


person TheNameless    schedule 20.04.2018    source источник


Ответы (1)


Ну, похоже, это связано с angular $ resorce. Когда я перешел на $ http, проблема исчезла.

person TheNameless    schedule 20.04.2018