angular post数据的前端处理方法

最开始用post传值给后端的时候直接使用:

$http.post(url,param).success(function(resp){
//成功之后需要的后续处理})

但和后端联调后发现,后端获取到的数据不是Form data格式,同时注意请求的Content-Type为text/plain;charset=UTF-8,而请求表单参数在RequestPayload中,且数据格式是JSON对象的格式,后端用通用的方法是获取不到数据的。需要做相应的处理,修改传值的格式,具体内容见下,已实践,方法可行:

var ng = angular,ngmod = ng.module('module',[],['$httpProvider', function($httpProvider) {var serialize;$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';serialize = function(rawData) {var queryString, tmpData;tmpData = {};queryString = '';ng.forEach(rawData, function(value, key) {if (ng.isArray(value) || ng.isArray(Object)) {return ng.forEach(value, function(v, i) {var dataNode;dataNode = key + '[' + i + ']';tmpData[dataNode] = v;return queryString += serialize(tmpData) + '&';});} else if (value !== void 0 && value !== null) {return queryString += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';}});if (queryString.length) {return queryString.substr(0, queryString.length - 1);} else {return queryString;}};return $httpProvider.defaults.transformRequest = [function(data) {return ng.isObject(data) && serialize(data);}];}]);

通过这样处理后的数据就是符合格式的form data了,后端获取数据也能正确获取,解决问题!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部