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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
JavaScript设计模式之单例模式实例
Sep 24 Javascript
JavaScript删除指定子元素代码实例
Jan 13 Javascript
Javascript中的方法链(Method Chaining)介绍
Mar 15 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
.netcore+vue 实现压缩文件下载功能
Sep 24 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
原生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通用检测函数集合
2006/11/25 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
js获取事件源及触发该事件的对象
2013/10/24 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
Python守护进程(daemon)代码实例
2015/03/06 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
python基础教程之Filter使用方法
2017/01/17 Python
python中for in的用法详解
2020/04/17 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
全球工业:Global Industrial
2020/02/01 全球购物
中班开学寄语
2014/04/04 职场文书
临床护理求职信
2014/04/26 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
关于旅游的活动方案
2014/08/15 职场文书
交通事故案件代理词
2015/05/23 职场文书
仓库管理制度范本
2015/08/04 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL