Почему объекты formData отображаются как пустые объекты в бэкэнде для ng-file-upload? - PullRequest
0 голосов
/ 16 февраля 2019

Итак, я использую объекты formData для отправки конфиденциальной информации в Django с помощью библиотеки ng-file-upload.Я попытался отправить объекты formData, но они отображаются как пустые объекты QueryDict, когда я пытаюсь отправить их в формате formData (который я предполагаю как шифрование объекта).Та же проблема не возникает при использовании службы $ http.Я подозреваю, что проблема может быть из-за загрузки ng-файла с использованием formData в его исходном коде.(В основном, formData создается для formData).Итак, верно ли мое предположение?Что именно происходит?

Сценарий 1 (без использования formData):

parameters.data = {
                    'status': 'submitting',
                    'input_file': vm.input_file,
                    'method_name': vm.methodName,
                    'method_description': vm.methodDesc,
                    'project_url': vm.projectUrl,
                    'publication_url': vm.publicationUrl
                };

Этот объект параметров затем передается в службу, где вызывается Upload.upload.После регистрации request.data в Django я правильно получаю вывод в виде QueryDict, который содержит указанные поля

Сценарий 2 (с formData):

var formData = new FormData();
formData.append("status", "submitting");
formData.append("input_file", vm.input_file);
formData.append("method_name", vm.methodName);
formData.append("method_description", vm.methodDesc);
formData.append("project_url", vm.projectUrl);
formData.append("publication_url", vm.publicationUrl);

parameters.data = formData;

Этот параметрОбъект такой же, как и выше, но объект в Django отображается как пустой объект QueryDict вместо того, чтобы содержать все поля, как в первом случае.

...