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 相关文章推荐
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
Jun 18 Javascript
一次失败的jQuery优化尝试小结
Feb 06 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
May 17 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
分享一款超好用的JavaScript 打包压缩工具
Apr 26 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扩展开发经验分享
2012/09/06 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP加密解密实例分析
2015/12/25 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
清空上传控件input file的值
2010/07/03 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
利用python批量检查网站的可用性
2016/09/09 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python实现单链表的方法示例
2019/09/03 Python
python 实现生成均匀分布的点
2019/12/05 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
django创建css文件夹的具体方法
2020/07/31 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
综合实践活动方案
2014/02/14 职场文书
夫妻吵架保证书
2015/05/08 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
七年级作文之雪景
2019/11/18 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS