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学习笔记(六) Date 日期类型
Jun 19 Javascript
jquery 添加节点的几种方法介绍
Sep 04 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
初步使用bootstrap快速创建页面
Mar 03 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
vue根据进入的路由进行原路返回的方法
Sep 26 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
vue实现锚点定位功能
Jun 29 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Python实现简单http服务器
2018/04/12 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
服务之星获奖感言
2014/01/21 职场文书
运动会通讯稿50字
2014/01/30 职场文书
合理化建议书
2015/02/04 职场文书
2015暑假假期总结
2015/07/13 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript