资讯专栏INFORMATION COLUMN

anguar的$http 笔记

zgbgx / 3377人阅读

摘要:但请求成功不代表这次请求没有错误,例如我接收到请求数据有个字段属性为时,代表用户操作异常,我需要将用户弹回登陆页面,重新登陆。

使用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");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79919.html

相关文章

  • Angular 容器部署

    摘要:很多人反应很难访问,所以转移到阿里云服务器上,因此做了一次完整的容器部署。在容器化过程中,我们并未配置任何等,只是保留服务所需的配置项而已,而这一部分我们可以放在反向代理层完成。 很多人反应很难访问 Github Page,所以 ng-alain.com 转移到阿里云服务器上,因此做了一次完整的 Angular 容器部署。 以下我会阐述 ng-alain 整个过程,其中包括 Docke...

    tracy 评论0 收藏0
  • Angular 容器部署

    摘要:很多人反应很难访问,所以转移到阿里云服务器上,因此做了一次完整的容器部署。在容器化过程中,我们并未配置任何等,只是保留服务所需的配置项而已,而这一部分我们可以放在反向代理层完成。 很多人反应很难访问 Github Page,所以 ng-alain.com 转移到阿里云服务器上,因此做了一次完整的 Angular 容器部署。 以下我会阐述 ng-alain 整个过程,其中包括 Docke...

    alighters 评论0 收藏0
  • AngularJS 2 Quick Start

    摘要:引言是用于构建基于浏览器的复杂应用的下一代框架。它涵盖了的一些基本概念,包括组件模型服务管道传入传出以及事件播散等使用方法,并介绍了项目的基本组织结构等。用于双向绑定,使用来定义,专门用于定义双向绑定。 引言 Angular2 是 Google 用于构建基于浏览器的复杂应用的下一代 MV* 框架。该项目是我学习 Angular2 的入门项目,我觉得它很友好地表达了 Angular2 的...

    Channe 评论0 收藏0
  • FCC 成都社区·技术周刊 第 12 期

    摘要:详情怎样规避地狱作者先介绍什么是地狱,以及在开发过程中怎样去规避地狱,一时爽性能问题火葬场。详情其他亮点汇总开发者大会已于北京时间月日凌晨在美国山景城正式启幕。 【前端】 1. JavaScript 的新数据类型:BigInt BigInt 是 JavaScript 中的一个新的数字基本(primitive)类型,可以用任意精度表示整数。使用 BigInt 可以安全地存储和操作大整数,...

    fanux 评论0 收藏0
  • FCC 成都社区·技术周刊 第 12 期

    摘要:详情怎样规避地狱作者先介绍什么是地狱,以及在开发过程中怎样去规避地狱,一时爽性能问题火葬场。详情其他亮点汇总开发者大会已于北京时间月日凌晨在美国山景城正式启幕。 【前端】 1. JavaScript 的新数据类型:BigInt BigInt 是 JavaScript 中的一个新的数字基本(primitive)类型,可以用任意精度表示整数。使用 BigInt 可以安全地存储和操作大整数,...

    zzbo 评论0 收藏0

发表评论

0条评论

zgbgx

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<