anguar的$http 笔记

运用Ng开辟中必不可少要用到$http通讯,那末这个$http 和JQ封装好的ajax有什么区别呢?

1.$http 的post通报参数要领差别

ng运用post要领通报的参数是json花样,而Jq的post要领通报过去的参数是form表格通报体式格局,所以假如运用ng开辟,最好一开始就和背景约定好吸收数据时先剖析json数据,不然背景很有能够吸收不了数据。

2.ng能合营$q运用Promise体式格局

虽然新版Jq也支撑Promise,不过Ng的也很不错
附上一篇文章
https://segmentfault.com/a/1190000002788733

3.ng能写拦截器,一致处置惩罚某些状况

平常运用Jq的Ajax时,都会做一些毛病处置惩罚,然则假如项目巨大了,有些毛病处置惩罚是反复屡次誊写的。就算是简简单单写一个 error 要领,写多了也会以为很烦。

然则Ng支撑一个拦截器的效劳

angular.module("app").factory('myInterceptor', ['$log', function($log) {
    //拦截器 一致处置惩罚 上岸非常状况
    var myInterceptor = {
        response: function(response) {
            // $rootScope.loading = false;
            if (response.status == 200) {
                var info = response.data;
                if (info.status == 0) {
                    location.href = "/adminWcloud/login.html";
                }
            } else {
                ot.warn("此次要求发作毛病")
            }
            response.config.responseTimestamp = new Date().getTime();
            return response;
        }
    };

    return myInterceptor;
}]);

以上代码是建立一个叫myInterceptor的效劳,response示意假如要求有响应时实行funtion 那末当要求状况为200时就是要求胜利,不是就是要求失利,所以一致一个毛病提醒要领(ot为本人封装好的一个提醒要领)。但要求胜利不代表此次要求没有毛病,比方我吸收到要求数据有个字段属性为0时,代表 用户操纵非常 , 我须要将用户弹回上岸页面,从新上岸。

然后在app中注入效劳

$httpProvider.interceptors.push('myInterceptor');
    原文作者:mumofa
    原文地址: https://segmentfault.com/a/1190000005887343
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞