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 相关文章推荐
Jquery 获取checkbox的checked问题
Nov 16 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
js处理php输出时间戳对不上号的解决方法
Jun 20 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
Nov 17 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
js跨域资源共享 基础篇
Jul 02 Javascript
微信小程序 教程之wxapp视图容器 swiper
Oct 19 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
countup.js实现数字动态叠加效果
Oct 17 Javascript
vue自定义正在加载动画的例子
Nov 14 Javascript
vue-element-admin项目导入和导出的实现
May 21 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 生成随机验证码图片代码
2010/02/08 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
使用python实现画AR模型时序图
2019/11/20 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
总账会计岗位职责
2014/03/13 职场文书
家长会主持词开场白
2014/03/18 职场文书
小学庆六一活动总结
2014/08/28 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
离婚协议书范本
2015/01/26 职场文书
2015年体育部工作总结
2015/04/02 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
Web应用开发TypeScript使用详解
2022/05/25 Javascript