Angularjs中$http以post请求通过消息体传递参数的实现方法

 更新时间:2016年08月05日 11:58:57   作者:Quber  
这篇文章主要介绍了Angularjs中$http以post请求通过消息体传递参数的方法,结合实例形式分析了$http使用post请求传递参数的相关设置与使用技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Angular如何由模板生成DOM树的方法

    Angular如何由模板生成DOM树的方法

    这篇文章主要介绍了Angular如何由模板生成DOM树的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】

    AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】

    这篇文章主要介绍了AngularJS实现的鼠标拖动画矩形框,涉及基于AngularJS的事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • Bootstrap和Angularjs配合自制弹框的实例代码

    Bootstrap和Angularjs配合自制弹框的实例代码

    今天小编通过本文给大家分享Bootstrap和Angularjs配合自制弹框的实例代码,代码简单易懂,有需要的朋友跟着小编一起学习
    2016-08-08
  • Angular项目如何升级至Angular6步骤全纪录

    Angular项目如何升级至Angular6步骤全纪录

    这篇文章主要给大家介绍了关于Angular项目如何升级至Angular6的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • AngularJS基础知识笔记之过滤器

    AngularJS基础知识笔记之过滤器

    在我们开发中经常需要在页面显示给用户的信息需要一定处理格式化,才能显示给用户。比如时间本地化,或者yyyy-MM-dd HH:mm:ss格式,数字精度格式化,本地化,人名格式化等等。在angularjs中为我们提供了叫filter的指令,让我们能够很轻易就能做到着一些列的功能
    2015-05-05
  • Angular2入门教程之模块和组件详解

    Angular2入门教程之模块和组件详解

    这篇文章主要给大家介绍了Angular2入门教程之模块和组件的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • angular十大常见问题

    angular十大常见问题

    本文主要介绍了angular十大常见问题,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • angular异步验证器防抖实例详解

    angular异步验证器防抖实例详解

    在实际工作中,我们经常需要一个基于后端API验证值的验证器,下面这篇文章主要给大家介绍了关于angular异步验证器防抖的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • angular实现form验证实例代码

    angular实现form验证实例代码

    本篇文章主要介绍了angular实现form验证实例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Angular之toDoList的实现代码示例

    Angular之toDoList的实现代码示例

    本篇文章主要介绍了Angular之toDoList的实现代码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12

最新评论