博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular中的$http服务
阅读量:5101 次
发布时间:2019-06-13

本文共 1301 字,大约阅读时间需要 4 分钟。

$http是ng内置的一个服务。是简单的封装了浏览器原生的XMLHttpRequest对象。

写法1

$http({      method: "GET",      url: 'data.json',    }).success(function(data, status, headers, config){      $scope.list = data;    }).error(function(data, status, headers, config) {         //    });
实际上$http方法返回一个promise对象,这样可以方便的进行链式调用。
于是我们可以这样
var promise = $http({      method: "GET",      url: 'data.json', })promise    .success(function(data, status, headers, config){        // $scope.list = data;    })    .error(function(data, status, headers, config) {         //    });
注意:
1. 如果响应状态码在200和299之间,会认为响应是成功的,success回调会被调用,否则会调用error回调。
2. 如果响应结果是重定向,XMLHttpRequest会跟进这个重定向,并不会调用error回调。
 
写法2
使用promise对象的then方法
then()方法与其他两种方法的主要区别是,它会接收到完整的响应对象,而success()和error()则会对响应对象进行析构。个人理解是拆分了
注意:推荐用then和catch分别代表成功和失败,不要用success和failed。因为好像1.6以后success已被弃用,为了和标准的promise保持一致。
$http({        method: "GET",        url: 'data.json'    })    .then(successCallback, errorCallback); function successCallback(responseObj){      //相应对象变了,不是data, status, headers, config而是包含他们四个属性的完整对象      $scope.list = responseObj.data    }    function errorCallback(){    }
 
写法3  快捷写法
jQuery源码中,$.get(url,data,fn),$.post等是对$ajax的再次封装。ng类似。
$http.get('data.json').success(function(data){      $scope.list = data })

实例:

转载于:https://www.cnblogs.com/mafeifan/p/5039798.html

你可能感兴趣的文章
MyBatis配置文件(一)――properties属性
查看>>
cocos2d-1.0.1-x-0.11.0 Win32项目模板补丁
查看>>
Python程序中#-*-coding: UTF-8 -*-的作用
查看>>
spring与redis集成之aop整合方案
查看>>
Sizzle源码分析:二 词法分析
查看>>
mysql 5.x 新用户无法登陆
查看>>
[ActionScript 3.0] 利用InteractivePNG.as类精确选择识别png图片有像素的区域
查看>>
[leetcode]Maximum Subarray
查看>>
loadrunner创建控制场景
查看>>
linux下日志自动清理(find删除30天前的数据)
查看>>
Compile libtorrent
查看>>
js跳转到页面中指定的hash
查看>>
2012年工作中遇到的20个问题
查看>>
Java复习题
查看>>
hdu 1010 深搜+剪枝
查看>>
剑指offer: 栈的压入和弹出序列
查看>>
将linux2.4.20内核升级到2.6.18.8并加载sctp模块
查看>>
502 Bad Gateway
查看>>
Evaluation Stack
查看>>
Java - 异常解析基础
查看>>