zoukankan      html  css  js  c++  java
  • Angularjs中$http以post请求通过消息体传递参数的实现方法

    本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法。分享给大家供大家参考,具体如下:

    Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性。

    一、在声明应用的时候进行设置:

     1 var httpPost = function($httpProvider) {
     2   /*******************************************
     3   说明:$http的post提交时,纠正消息体
     4   ********************************************/
     5   // Use x-www-form-urlencoded Content-Type
     6   $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
     7   /*
     8    * The workhorse; converts an object to x-www-form-urlencoded serialization.
     9    * @param {Object} obj
    10    * @return {String}
    11    */
    12   var param = function(obj) {
    13     var query = '', name, value, fullSubName, subName, subValue, innerObj, i;
    14     for (name in obj) {
    15       value = obj[name];
    16       if (value instanceof Array) {
    17         for (i = 0; i < value.length; ++i) {
    18           subValue = value[i];
    19           fullSubName = name + '[' + i + ']';
    20           innerObj = {};
    21           innerObj[fullSubName] = subValue;
    22           query += param(innerObj) + '&';
    23         }
    24       } else if (value instanceof Object) {
    25         for (subName in value) {
    26           subValue = value[subName];
    27           fullSubName = name + '[' + subName + ']';
    28           innerObj = {};
    29           innerObj[fullSubName] = subValue;
    30           query += param(innerObj) + '&';
    31         }
    32       } else if (value !== undefined && value !== null)
    33         query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
    34     }
    35     return query.length ? query.substr(0, query.length - 1) : query;
    36   };
    37   // Override $http service's default transformRequest
    38   $httpProvider.defaults.transformRequest = [
    39     function(data) {
    40       return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
    41     }
    42   ];
    43 };
    44 var ngApp = angular.module('wtApp', ['ngCookies'], httpPost);

    二、调用$http post

    1 $http({
    2   method: 'POST',
    3   url: 'GetData.ashx',
    4   params: { id: '1002' },//params作为url的参数
    5   data: { keyName: 'qubernet' }//作为消息体参数
    6 }, function (data) {
    7 });

    原文地址:http://www.jb51.net/article/89932.htm

  • 相关阅读:
    JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换
    JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个技巧
    如何保证MongoDB的安全性?
    SQLSERVER 中sp_who, sp_who2和sp_who3(转载)
    exec sp_spaceused如何只返回一个结果集(转载)
    c#静态构造函数 与 构造函数 你是否还记得?(转载)
    如何让.NET Core支持GB2312和GBK
    C#中用HttpWebRequest中发送GET/HTTP/HTTPS请求 (转载)
    ASP.NET Core读取AppSettings (转载)
    使用自定义端口连接SQL Server的方法(转载)
  • 原文地址:https://www.cnblogs.com/lili-lili-lili-lili/p/6206438.html
Copyright © 2011-2022 走看看