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 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
收集的10个免费的jQuery相册
Feb 26 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
Jan 13 Javascript
调用innerHTML之后onclick失效问题的解决方法
Jan 28 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
详细分析JS函数去抖和节流
Dec 05 Javascript
vue实现移动端图片上传功能
Dec 23 Javascript
uni-app微信小程序登录授权的实现
May 22 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程序中的常见漏洞进行攻击
2006/10/09 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
python在地图上画比例的实例详解
2020/11/13 Python
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
军训 自我鉴定
2014/02/03 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
店面销售职位的职责
2014/03/09 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
工地安全标语
2014/06/07 职场文书
影视广告专业求职信
2014/09/02 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
开业典礼致辞
2015/07/29 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript