Home > Article > Web Front-end > How to implement $http in Angularjs to pass parameters through the message body in a post request
The example of this article describes the method of passing parameters through the message body through $http in Angularjs using post request. Share it with everyone for your reference, the details are as follows:
In Angularjs, $http uses post to pass parameters in the message body. The following modifications need to be made to ensure the correctness of the parameters passed in the message body.
1. Set it when declaring the application:
var httpPost = function($httpProvider) { /******************************************* 说明:$http的post提交时,纠正消息体 ********************************************/ // Use x-www-form-urlencoded Content-Type $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; /* * The workhorse; converts an object to x-www-form-urlencoded serialization. * @param {Object} obj * @return {String} */ var param = function(obj) { var query = '', name, value, fullSubName, subName, subValue, innerObj, i; for (name in obj) { value = obj[name]; if (value instanceof Array) { for (i = 0; i < value.length; ++i) { subValue = value[i]; fullSubName = name + '[' + i + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if (value instanceof Object) { for (subName in value) { subValue = value[subName]; fullSubName = name + '[' + subName + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if (value !== undefined && value !== null) query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&'; } return query.length ? query.substr(0, query.length - 1) : query; }; // Override $http service's default transformRequest $httpProvider.defaults.transformRequest = [ function(data) { return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data; } ]; }; var ngApp = angular.module('wtApp', ['ngCookies'], httpPost);
2. Call $http post
$http({ method: 'POST', url: 'GetData.ashx', params: { id: '1002' },//params作为url的参数 data: { keyName: 'qubernet' }//作为消息体参数 }, function (data) { });
For more related articles on how to implement $http to pass parameters through the message body in a post request in Angularjs, please pay attention to the PHP Chinese website!