2015-10-20 91 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); 
    }); 
} 

但它發送數據請求負載,我想將它發送的表單數據按我的後端代碼的要求。

感謝您的任何幫助。

+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

謝謝。它爲我工作。 –