2015-10-20 4 views
0

Я не могу найти решение для отправки данных запроса PUT в виде данных формы в AngularJs.AngularJs - Отправить данные запроса PUT как данные формы

Вот мой код:

services.factory('appsInfoFactory', ['$http', function ($http) { 
    var apps = {}; 
    var callPut = function (url, data, callback) { 
     var headers = {'Content-Type': 'application/x-www-form-urlencoded'}, 
     User = 'aaaa', 
     Secret = 'dummysecret', 
     param = 'User=' + User + "&Secret=" + Secret; 
     $http.put(url + "?" + param, data, headers).success(callback); 
    }; 
    apps.registerApp = function (appName, data, callback) { 
     callPut("/apps/" + appName, data, callback); 
    }; 
    return apps; 
}]); 

$scope.addApps = function (Name, Repo, Root, Email, Internal, NonAtlantis) { 
    var User = 'aaaa', 
    Secret = 'dummysecret', 
    data = JSON.stringify({Name, Repo, Root, Email, Internal, NonAtlantis, User, Secret}); 
    console.log(data); 

    appsInfoFactory.registerApp(name, data, function (val) { 
     console.log(val); 
    }); 
} 

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

Спасибо за любую помощь.

+0

Ваш ответ здесь: http://stackoverflow.com/a/11443066/2528925 –

+0

Возможный дубликат [Как я могу отправить данные в виде данных форм вместо полезной нагрузки запроса?] (HTTP://stackoverflow.com/questions/11442632/how-can-i-post-data-as-form-data-instead-of-a-request-payload) –

ответ

0

Посмотрите на последнюю строку в функции callPut. Это должно быть так: -

$http.put(url + "?" + param, data, {'headers': headers}).success(callback);

Последних пары до $ http.PUT метода является конфигурационным объектом, в котором он будет ожидать, что ключ, как «заголовки» так попробуйте передать его как объект.

и предложу сделать var config = {'headers':headers} , а затем передать этот объект конфигурации в положение PUT.

$http.put(url + "?" + param, data, config).success(callback);

+0

Спасибо. Это сработало для меня. –

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