AngularJS的ng Http Request與response格式轉(zhuǎn)換方法
本文實例講述了AngularJS的ng Http Request與response格式轉(zhuǎn)換方法。分享給大家供大家參考,具體如下:
angular作為Single Page Application推薦的交互方式當然是基于json的ajax調(diào)用。但今天要說的是當你不幸工作在一個遺留或者不可控制的服務(wù)上,而這服務(wù)是基于非json提交方式(或許是常規(guī)表單(form)提交,或者其他自定義數(shù)據(jù)格式),那么我們只能改變ng內(nèi)部$http默認request/response格式轉(zhuǎn)化方式。
所幸的是ng $http給我們提供了多種可用方式轉(zhuǎn)化數(shù)據(jù)格式(下面demo將以form提交方式為例):
***對于部分單獨的http request設(shè)置:
對于http ajax方式最后一個參數(shù)都是關(guān)于http的配置信息,其中包括一項transformRequest,我們可以利用transformRequest在ajax發(fā)送數(shù)據(jù)之前改變數(shù)據(jù)的格式,例如下邊的demo:
$http.post("/url", { id: 1, name: "greengerong" }, { transformRequest: function(request) { return $.param(request); } });
這里利用jQuery的$.param進行表單提交方式的格式轉(zhuǎn)化,所以我們能夠看見的request body 為:
id=1&name=greengerong
***對于整個app的http request設(shè)置:
如果我們需要對整個http的數(shù)據(jù)轉(zhuǎn)化格式進行設(shè)置,那么可以選用在config階段對$httpProvider默認行為進行設(shè)置:
angular.module("app", []) .config(["$httpProvider", function($httpProvider) { $httpProvider.defaults.transformRequest = [ function(request) { return $.param(request); } ]; } ]);
這樣我們就可以輕易的轉(zhuǎn)化為form提交方式。
同樣$http也為我們提供了transformResponse方式,我們也可以創(chuàng)建自己的response轉(zhuǎn)化,比如json之前加入自定義前綴防止json array攻擊等等。
希望本文所述對大家AngularJS程序設(shè)計有所幫助。
- JSP 中request與response的用法詳解
- @ResponseBody 和 @RequestBody 注解的區(qū)別
- C#中Request.Cookies 和 Response.Cookies 的區(qū)別分析
- http調(diào)用webservice操作httprequest、httpresponse示例
- Asp.net response對象與request對象使用介紹
- ASP.NET筆記之 Request 、Response 與Server的使用
- JSP內(nèi)置對象:Request和Response的簡單介紹及使用
- jquery ajax學習筆記2 使用XMLHttpRequest對象的responseXML
- JSP中Servlet的Request與Response的用法與區(qū)別
相關(guān)文章
AngularJS通過$location獲取及改變當前頁面的URL
本篇將介紹AngularJS中的$location服務(wù)的基本用法,$location服務(wù)的主要作用是用于獲取當前url以及改變當前的url,并且存入歷史記錄。本文通過示例代碼介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-09-09angular學習之動態(tài)創(chuàng)建表單的方法
這篇文章主要介紹了angular學習之動態(tài)創(chuàng)建表單的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12angularJS自定義directive之帶參方法傳遞詳解
今天小編就為大家分享一篇angularJS自定義directive之帶參方法傳遞詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10AngularJS 購物車全選/取消全選功能的實現(xiàn)方法
下面小編就為大家?guī)硪黄狝ngularJS 購物車全選/取消全選功能的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08Angular6實現(xiàn)拖拽功能指令drag實例詳解
這篇文章主要為大家介紹了Angular6實現(xiàn)拖拽功能指令drag實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11AngularJs的$http發(fā)送POST請求,php無法接收Post的數(shù)據(jù)問題及解決方案
這篇文章主要介紹了AngularJs的$http發(fā)送POST請求,php無法接收Post的數(shù)據(jù)的問題及解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08