Angularjs中$http以post請求通過訊息體傳遞參數的實現方法_AngularJS

來源:互聯網
上載者:User

本文執行個體講述了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程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.