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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
Jquery chosen动态设置值实例介绍
Aug 08 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 Javascript
angular.foreach 循环方法使用指南
Jan 06 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
ionic2 tabs 图标自定义实例
Mar 08 Javascript
Vue生命周期示例详解
Apr 12 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 Javascript
微信小程序点击保存图片到本机功能
Dec 13 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/03/27 PHP
php strcmp使用说明
2010/04/22 PHP
PHP的基本常识小结
2013/07/05 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
基于PHP制作验证码
2016/10/12 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
js模糊查询实例分享
2016/12/26 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
python 迭代器和iter()函数详解及实例
2017/03/21 Python
Python数据结构之单链表详解
2017/09/12 Python
python中使用while循环的实例
2019/08/05 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
神龙架导游词
2015/02/11 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
小学运动会宣传稿
2015/07/23 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
python内置进制转换函数的操作
2021/06/02 Python
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python