Angularjs中$http以post请求通过消息体传递参数的实现方法


Posted in Javascript onAugust 05, 2016

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
一个JS翻页效果
Jul 23 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
javascript学习笔记(七) js函数介绍
Jun 19 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
深入理解Node.js 事件循环和回调函数
Nov 02 Javascript
JavaScript 异步调用
Oct 25 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
JS实现纸牌发牌动画
Jan 19 Javascript
关于JavaScript轮播图的实现
Nov 20 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 #Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 #Javascript
js从外部获取图片的实现方法
Aug 05 #Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 #Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 #Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 #Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
Django实现快速分页的方法实例
2017/10/22 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
eBay奥地利站:eBay.at
2019/07/24 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
房地产销售大学生自我评价分享
2013/11/11 职场文书
前台接待员岗位职责
2014/01/02 职场文书
旅游市场营销方案
2014/03/09 职场文书
教师师德演讲稿
2014/05/06 职场文书
应届生求职自荐信
2014/07/04 职场文书
员工聘用合同范本
2015/09/21 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS