Angularjs中$http以post请求通过消息体传递参数的实现方法  更新时间:2016年08月05日 11:58:57   作者:Quber   这篇文章主要介绍了Angularjs中$http以post请求通过消息体传递参数的方法,结合实例形式分析了$http使用post请求传递参数的相关设置与使用技巧,需要的朋友可以参考下 本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法。分享给大家供大家参考,具体如下: Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性。 一、在声明应用的时候进行设置: 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); 二、调用$http post $http({ method: 'POST', url: 'GetData.ashx', params: { id: '1002' },//params作为url的参数 data: { keyName: 'qubernet' }//作为消息体参数 }, function (data) { }); 希望本文所述对大家AngularJS程序设计有所帮助。 您可能感兴趣的文章: 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法 对比分析AngularJS中的$http.post与jQuery.post的区别 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法 AngularJS下$http服务Post方法传递json参数的实例 AngularJS $http模块POST请求实现 AngularJS $http post 传递参数数据的方法 angularJS 发起$http.post和$http.get请求的实现方法 AngularJS封装$http.post()实例详解 深入理解Angularjs中$http.post与$.post Angular利用HTTP POST下载流文件的步骤记录 Angularjs $http 传递参数 相关文章 详谈Angular 2+ 的表单(一)之模板驱动型表单 这篇文章主要介绍了Angular 2+ 的表单(一)之模板驱动型表单,非常不错,具有参考借鉴价值,需要的朋友可以参考下 2017-04-04 AngularJS表单和输入验证实例 本篇文章详细的介绍了AngularJS表单和输入验证实例, AngularJS表单可以提供验证功能。有需要的可以了解一下。 2016-11-11 详解AngularJS中的表格使用 这篇文章主要介绍了详解AngularJS中的表格使用,作为热门的JavaScript框架,AngularJS中提供的表格功能十分强大,需要的朋友可以参考下 2015-06-06 简介AngularJS的视图功能应用 这篇文章主要介绍了AngularJS的视图功能应用,包括ng-view和ng-template以及$routeProvider的使用,以及 $routeProvider 需要的朋友可以参考下 2015-06-06 Angular 通过注入 $location 获取与修改当前页面URL的实例 这篇文章主要介绍了Angular 通过注入 $location 获取与修改当前页面URL的实例代码,需要的朋友可以参考下 2017-05-05 如何编写一个完整的Angular4 FormText 组件 本篇文章主要介绍了如何编写一个完整的Angular4 FormText 组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2017-11-11 对angular 监控数据模型变化的事件方法$watch详解 今天小编就为大家分享一篇对angular 监控数据模型变化的事件方法$watch详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-10-10 AngularJS基础 ng-focus 指令简单示例 本文主要介绍AngularJS ng-focus 指令,这里整理了ng-focus的一些基础资料,并附一个实例代码,有需要的小伙伴参考下 2016-08-08 AngularJS内建服务$location及其功能详解 这篇文章主要为大家详细介绍了AngularJS内建服务$location及$location功能,感兴趣的小伙伴们可以参考一下 2016-07-07 AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】 这篇文章主要介绍了AngularJS验证信息框架的封装插件用法,分析了AngularJS表单验证规则并实例说明了w5cValidator扩展插件的相关使用技巧,需要的朋友可以参考下 2016-11-11 最新评论

本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法。分享给大家供大家参考,具体如下:

Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性。

一、在声明应用的时候进行设置:

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

二、调用$http post

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

希望本文所述对大家AngularJS程序设计有所帮助。

您可能感兴趣的文章:

  • 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
  • 对比分析AngularJS中的$http.post与jQuery.post的区别
  • 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
  • AngularJS下$http服务Post方法传递json参数的实例
  • AngularJS $http模块POST请求实现
  • AngularJS $http post 传递参数数据的方法
  • angularJS 发起$http.post和$http.get请求的实现方法
  • AngularJS封装$http.post()实例详解
  • 深入理解Angularjs中$http.post与$.post
  • Angular利用HTTP POST下载流文件的步骤记录
张贴在3