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 相关文章推荐
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
JavaScript实现全选取消效果
Dec 14 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
Vue2 添加数据可视化支持的方法步骤
Jan 02 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
JS实现基本的网页计算器功能示例
Jan 16 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 异常处理实现代码
2009/03/10 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
JS模拟多线程
2007/02/07 Javascript
JavaScript中常见陷阱小结
2010/04/27 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python getpass模块用法及实例详解
2019/10/07 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
家教广告词
2014/03/19 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
2014年项目工作总结
2014/11/24 职场文书
迟到检讨书
2015/01/26 职场文书
办公室岗位职责
2015/02/04 职场文书