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 利用StringBuffer类提升+=拼接字符串效率
Nov 24 Javascript
Array.prototype.slice.apply的使用方法
Mar 17 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
自己封装的javascript事件队列函数版
Jun 12 Javascript
JavaScript中字符串(string)转json的2种方法
Jun 25 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
详解JavaScript中的强制类型转换
Apr 15 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 Javascript
详解JavaScript的计时器和按钮效果设置
Feb 18 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
菜鸟学PHP之Smarty入门
2007/01/04 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php 伪静态之IIS篇
2014/06/02 PHP
php实用代码片段整理
2016/11/12 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python数字类型math库原理解析
2020/03/02 Python
django实现后台显示媒体文件
2020/04/07 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
幼师专业求职推荐信
2013/11/08 职场文书
实习生自我评价
2014/01/18 职场文书
消防先进事迹材料
2014/02/10 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
技术负责人任命书
2014/06/05 职场文书
人事任命通知
2015/04/20 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
Django一小时写出账号密码管理系统
2021/04/29 Python
Nginx的基本概念和原理
2022/03/21 Servers
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers