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 CSS画图之基础篇
Jul 29 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
jQuery根据纬度经度查看地图处理程序
May 08 Javascript
javascript中的变量作用域以及变量提升详细介绍
Oct 24 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
Jan 21 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
Apr 15 Javascript
Vue.JS入门教程之列表渲染
Dec 01 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
在node中如何使用 ES6
Apr 22 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 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
使用 php4 加速 web 传输
2006/10/09 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
优化javascript的执行速度
2010/01/23 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
为python设置socket代理的方法
2015/01/14 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
广告词串烧
2014/03/19 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
创业计划书之甜品店
2019/09/18 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
Win11 BitLocker 驱动器加密
2022/04/19 数码科技