Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie $http in Angularjs, um Parameter über den Nachrichtentext in einer Post-Anfrage zu übergeben

So implementieren Sie $http in Angularjs, um Parameter über den Nachrichtentext in einer Post-Anfrage zu übergeben

高洛峰
高洛峰Original
2017-02-16 17:15:431349Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode zum Übergeben von Parametern durch den Nachrichtentext über $http in Angularjs per Post-Anfrage. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

In AngularJS verwendet $http Post, um Parameter im Nachrichtentext zu übergeben. Die folgenden Änderungen müssen vorgenommen werden, um die Richtigkeit der übergebenen Parameter sicherzustellen im Nachrichtentext.

1. Stellen Sie es bei der Anmeldung ein:

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);

2 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) {
});

Weitere verwandte Artikel zur Implementierung von $http in Angularjs zur Übergabe von Parametern über den Nachrichtentext in einer Post-Anfrage finden Sie im PHP-Chinesisch Webseite!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn