2015-10-20 68 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

谢谢。它为我工作。 –

相关问题