2015-12-28 3 views
1

Я пишу приложение, угловато-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 ложь для того, чтобы иметь возможность отправить FormData в JQuery Ajax вызова. как это можно сделать с помощью $ http?

+0

https://hello-angularjs.appspot.com/angularjs-http-service-ajax-post-json-data-code-example –

+0

благодаря @AnikIslamAbhi, но мне кажется, что пример есть для отправки JSON данные. Я хочу отправить FormData, так как я также прикрепляю изображение – ufk

+0

https://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs – Minato

ответ

2
$scope.addDrink = function(files) { 

// append all what u want. 

$http.post('https://api.myalcoholist.com:8888/drink', data, {  
    headers: {'Content-Type': undefined }, 
    transformRequest: angular.identity 
}).success(...all right!...).error(..damn!...); 

}; 
+0

Это отлично работает, Самое главное, чтобы рассмотреть (если вы забыли прочитать оригинальный вопрос). Преобразуйте свою ng-модель в formData Object. Системы, сделанные с .net, нуждаются в таком типе конвертации, я не знаю почему. : P – elporfirio

+0

о, это новое для меня, спасибо за акклиматизацию –

Смежные вопросы