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 遍历验证所有文本框的值
Aug 27 Javascript
JavaScript DOM节点添加示例
Jul 16 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
Nov 28 Javascript
js选项卡的实现方法
Feb 09 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
javascript获取重复次数最多的字符
Jul 08 Javascript
JavaScript中使用数组方法汇总
Feb 16 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
jquery常用的12个小功能
Jul 22 Javascript
js实现多图左右切换功能
Aug 04 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 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数组总结篇(一)
2008/09/30 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
Python获取当前时间的方法
2014/01/14 Python
Python中用于计算对数的log()方法
2015/05/15 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
Python中os模块功能与用法详解
2020/02/26 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
医大实习自我鉴定
2013/12/07 职场文书
委托书范文
2014/04/02 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
立项申请报告范本
2015/05/15 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL