отправка FormData с угловым $http

Я пишу приложение angular-1.5.0-rc0

В этом приложении я создаю FormData, заполняю его значениями, и мне нужно отправить его с запросом $http. на данный момент я использую jquery ajax со следующим кодом:

this.addDrink = function () {
        var data = new FormData();
        var drinkBrand = caller.drink.drinkBrand;
        var drinkType = caller.drink.drinkType;
        var drinkFlavor = caller.drink.drinkFlavor;
        var liquidColor = caller.drink.liquidColor;
        var drinkCompany = caller.drink.drinkCompany;
        var liquidIsTransparent = caller.drink.liquidIsTransparent;
        var drinkImage = caller.drink.drinkImage;
        var caloriesFor100g = caller.drink.caloriesFor100g;
        var alcoholSum = caller.drink.alcoholSum;
        var alcoholSumType = caller.drink.alcoholSumType;
        data.append('alcohol_sum_type', alcoholSumType);
        data.append('drink_brand', drinkBrand);
        data.append('drink_type', drinkType);
        data.append('drink_flavor', drinkFlavor);
        data.append('liquid_color', liquidColor);
        data.append('liquid_is_transparent', liquidIsTransparent);
        data.append('drink_image', drinkImage);
        data.append('drink_company', drinkCompany);
        data.append('calories_for_100g', caloriesFor100g);
        data.append('alcohol_sum', alcoholSum);
        $.ajax({
            url: 'https://api.myalcoholist.com:8888/drink',
            data: data,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function (data) {
                if (!data.success) {
                    alert(data.data);
                } else {
                    alert('done');
                }
            }
        });
    };

как вы можете видеть, я установил для processData и ContentType значение false, чтобы иметь возможность отправлять FormData в вызове jquery ajax. как это можно сделать с помощью $http?


person ufk    schedule 28.12.2015    source источник
comment
hello-angularjs.appspot.com/   -  person Anik Islam Abhi    schedule 28.12.2015
comment
спасибо @AnikIslamAbhi, но кажется, что это пример для отправки данных json. я хочу отправить FormData, так как я также прикрепляю изображение   -  person ufk    schedule 28.12.2015
comment
uncorkedstudios.com/blog/   -  person Minato    schedule 28.12.2015
comment
Вы можете использовать некоторые сторонние библиотеки для облегчения загрузки файлов, например ng-file-upload.   -  person fracz    schedule 28.12.2015


Ответы (1)


person    schedule
comment
Это прекрасно работает, самое главное учитывать (если вы забыли прочитать исходный вопрос). Преобразуйте свою ng-модель в объект formData. Системы, созданные с помощью .net, нуждаются в таком преобразовании, я не знаю, почему. :П - person elporfirio; 06.09.2016