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的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
Tab切换组件(选项卡功能)实例代码
Nov 21 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
Jquery动态替换div内容及动态展示的方法
Jan 23 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
JavaScript中的回调函数实例讲解
Jan 27 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 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
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
Python中几种导入模块的方式总结
2017/04/27 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python jieba库用法及实例解析
2019/11/04 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
班组长岗位职责范本
2014/01/05 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
工作过失检讨书
2014/02/23 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
承诺保证书格式
2015/02/28 职场文书
可怜妈妈观后感
2015/06/09 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL