我无法找到在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 :(得分: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);