AngularJs - 将PUT请求数据作为表单数据发送

时间:2015-10-20 06:30:34

标签: 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);
    });
}

但它会将数据作为请求有效负载发送,我希望根据我的后端代码的要求将其作为表单数据发送。

感谢您的帮助。

1 个答案:

答案 0 :(得分: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);