W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
基本的操作由 $http 服務(wù)提供。它的使用很簡單,提供一些描述請求的參數(shù),請求就出去了,然后返回一個(gè)擴(kuò)充了 success 方法和 error 方法的 promise 對象(下節(jié)介紹),你可以在這個(gè)對象中添加需要的回調(diào)函數(shù)。
angular.module('app', [], angular.noop) .controller('TestCtrl', function($scope){ var p = $http({ method: 'GET', url: '/json' }); p.success(function(response, status, headers, config){ $scope.name = response.name; }); }); angular.bootstrap(document.documentElement, ['app']);
$http 接受的配置項(xiàng)有:
其中的 transformRequest 和 transformResponse 及 headers 已經(jīng)有定義的,如果自定義則會(huì)覆蓋默認(rèn)定義:
var $config = this.defaults = { // transform incoming response data transformResponse: [function(data) { if (isString(data)) { // strip json vulnerability protection prefix data = data.replace(PROTECTION_PREFIX, ''); if (JSON_START.test(data) && JSON_END.test(data)) data = fromJson(data, true); } return data; }], // transform outgoing request data transformRequest: [function(d) { return isObject(d) && !isFile(d) ? toJson(d) : d; }], // default headers headers: { common: { 'Accept': 'application/json, text/plain, */*', 'X-Requested-With': 'XMLHttpRequest' }, post: {'Content-Type': 'application/json;charset=utf-8'}, put: {'Content-Type': 'application/json;charset=utf-8'} } };
注意它默認(rèn)的 POST 方法出去的 Content-Type
對于幾個(gè)標(biāo)準(zhǔn)的 HTTP 方法,有對應(yīng)的 shortcut :
注意其中的 JSONP 方法,在實(shí)現(xiàn)上會(huì)在頁面中添加一個(gè) script 標(biāo)簽,然后放出一個(gè) GET 請求。你自己定義的,匿名回調(diào)函數(shù),會(huì)被 ng 自已給一個(gè)全局變量。在定義請求,作為 GET 參數(shù),你可以使用 JSON_CALLBACK 這個(gè)字符串來暫時(shí)代替回調(diào)函數(shù)名,之后 ng 會(huì)為你替換成真正的函數(shù)名:
var p = $http({ method: 'JSONP', url: '/json', params: {callback: 'JSON_CALLBACK'} }); p.success(function(response, status, headers, config){ console.log(response); $scope.name = response.name; });
$http 有兩個(gè)屬性:
$http.defaults.transformRequest = function(data){console.log('here'); return data;} console.log($http.pendingRequests);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: