AngularJS的ng Http Request與response格式轉換方法_AngularJS

來源:互聯網
上載者:User

本文執行個體講述了AngularJS的ng Http Request與response格式轉換方法。分享給大家供大家參考,具體如下:

angular作為Single Page Application推薦的互動方式當然是基於json的ajax調用。但今天要說的是當你不幸工作在一個遺留或者不可控制的服務上,而這服務是基於非json提交方式(或許是常規表單(form)提交,或者其他自訂資料格式),那麼我們只能改變ng內部$http預設request/response格式轉化方式。

所幸的是ng $http給我們提供了多種可用方式轉化資料格式(下面demo將以form提交方式為例):

***對於部分單獨的http request設定:

對於http ajax方式最後一個參數都是關於http的配置資訊,其中包括一項transformRequest,我們可以利用transformRequest在ajax發送資料之前改變資料的格式,例如下邊的demo:

$http.post("/url", {   id: 1,   name: "greengerong"  }, {   transformRequest: function(request) {    return $.param(request);  }});

這裡利用jQuery的$.param進行表單提交方式的格式轉化,所以我們能夠看見的request body 為:

id=1&name=greengerong

***對於整個app的http request設定:

如果我們需要對整個http的資料轉化格式進行設定,那麼可以選用在config階段對$httpProvider預設行為進行設定:

angular.module("app", []).config(["$httpProvider", function($httpProvider) {   $httpProvider.defaults.transformRequest = [    function(request) {     return $.param(request);    }   ];  }]);

這樣我們就可以輕易的轉化為form提交方式。

同樣$http也為我們提供了transformResponse方式,我們也可以建立自己的response轉化,比如json之前加入自訂首碼防止json array攻擊等等。

希望本文所述對大家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.