国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

angularjs封裝$http為factory的方法

2024-05-06 15:17:01
字體:
供稿:網(wǎng)友

angularjs有本身封裝的ajax服務(wù)$http,因?yàn)橛脩T了jQuery的ajax,所以,自己封裝了一下angularjs的$http,代碼如下

app.factory('dataFactory', function ($http, $q){   var factory = {};   factory.getlist = function(endpoint, method, headers, params) {     var defer = $q.defer();     if (method == 'GET') {       $http({         url: endpoint,         method: "GET",         headers: headers,         params: params,       }).success(function (data) {         defer.resolve(data);       }).       error(function (data, status, headers, config) {         // defer.resolve(data);         defer.reject(data);       });     } else {       $http({         url: endpoint,         method: method,         headers: headers,         data: params,       }).success(function (data) {         defer.resolve(data);       }).       error(function (data, status, headers, config) {         // defer.resolve(data);         defer.reject(data);       });     }     return defer.promise;     };     return factory; }); 

在controller中引入dataFactory和$http即可使用更方便的調(diào)用ajax,一般情況下headers為

headers = {'Content-Type': 'application/json'};

params為一個(gè)json字符串

然后調(diào)用

dataFactory.getlist("/api/checkDuplicate", 'GET', headers, params).then(function(data) { //success函數(shù) },function(data){ //error函數(shù) }) 

但是其中又一次在項(xiàng)目中,后臺(tái)框架使用的是Struts框架,在一個(gè)Python中使用的很好的dataFactory,在這里的后臺(tái)取不到數(shù),最后發(fā)現(xiàn)是應(yīng)為header設(shè)置不對(duì),而且params的格式也不正確,可以把header修改為

 headers = {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'};

上面dataFactory中else添加轉(zhuǎn)換params代碼:

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;         };       $http({         url: endpoint,         method: method,         headers: headers,         data: param(params),       }).success(function (data) {         defer.resolve(data);       }).       error(function (data, status, headers, config) {         // defer.resolve(data);         defer.reject(data);       });             
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 中江县| 石首市| 咸宁市| 榆中县| 久治县| 交城县| 闽侯县| 略阳县| 潼关县| 阜新| 马尔康县| 铜梁县| 乃东县| 甘谷县| 巫溪县| 涞源县| 城口县| 青铜峡市| 洛阳市| 孙吴县| 台北县| 衡南县| 金门县| 屯昌县| 鲜城| 双桥区| 江西省| 壶关县| 吉水县| 石门县| 建德市| 甘德县| 攀枝花市| 凤山县| 安溪县| 贵州省| 福贡县| 桦甸市| 韶山市| 宁都县| 北票市|