Home > Web Front-end > JS Tutorial > body text

How to implement $http in Angularjs to pass parameters through the message body in a post request

高洛峰
Release: 2017-02-16 17:15:43
Original
1331 people have browsed it

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 + &#39;[&#39; + i + &#39;]&#39;;
          innerObj = {};
          innerObj[fullSubName] = subValue;
          query += param(innerObj) + &#39;&&#39;;
        }
      } else if (value instanceof Object) {
        for (subName in value) {
          subValue = value[subName];
          fullSubName = name + &#39;[&#39; + subName + &#39;]&#39;;
          innerObj = {};
          innerObj[fullSubName] = subValue;
          query += param(innerObj) + &#39;&&#39;;
        }
      } else if (value !== undefined && value !== null)
        query += encodeURIComponent(name) + &#39;=&#39; + encodeURIComponent(value) + &#39;&&#39;;
    }
    return query.length ? query.substr(0, query.length - 1) : query;
  };
  // Override $http service&#39;s default transformRequest
  $httpProvider.defaults.transformRequest = [
    function(data) {
      return angular.isObject(data) && String(data) !== &#39;[object File]&#39; ? param(data) : data;
    }
  ];
};
var ngApp = angular.module(&#39;wtApp&#39;, [&#39;ngCookies&#39;], httpPost);
Copy after login

2. Call $http post

$http({
  method: &#39;POST&#39;,
  url: &#39;GetData.ashx&#39;,
  params: { id: &#39;1002&#39; },//params作为url的参数
  data: { keyName: &#39;qubernet&#39; }//作为消息体参数
}, function (data) {
});
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!