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与webservice的通信实现代码
Dec 25 Javascript
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
js中有关IE版本检测
Jan 04 Javascript
解析javascript 数组以及json元素的添加删除
Jun 26 Javascript
javascript 获取模态窗口的滚动位置代码
Aug 06 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
Nov 26 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
Javascript闭包实例详解
Nov 29 Javascript
React全家桶环境搭建过程详解
May 18 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
layui 实现table翻页滚动条位置保持不变的例子
Sep 05 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实现两个数组相加的方法
2015/02/17 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python采集微信公众号文章
2018/12/20 Python
Django 多环境配置详解
2019/05/14 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
资深地理教师自我评价
2013/09/21 职场文书
实习自我评价怎么写
2013/12/02 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
导师推荐信范文
2014/05/09 职场文书
销售工作决心书
2015/02/04 职场文书