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 相关文章推荐
JavaScript表达式:URL 协议介绍
Mar 10 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
学习Angularjs分页指令
Jul 01 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
JS正则匹配中文的方法示例
Jan 06 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
原生js实现点击轮播切换图片
Feb 11 Javascript
js实现页面图片消除效果
Mar 24 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
Jul 09 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
一些常用的php简单命令代码集锦
2007/09/24 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
Python入门之modf()方法的使用
2015/05/15 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
python的re模块使用方法详解
2019/07/26 Python
Python中关于浮点数的冷知识
2019/09/22 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
业务员简历自我评价
2014/03/06 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
教育合作协议范本
2014/10/17 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2014年药店工作总结
2014/11/20 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
党校学习党性分析材料
2014/12/19 职场文书
龙门石窟导游词
2015/02/02 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技