AngularJS中的$http

来源:互联网 发布:微商拍小视频的软件 编辑:程序博客网 时间:2024/06/08 03:52

对于ajax应用(使用XMLHttpRequest)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用、发起请求、读取响应、检查状态码、最后处理服务端的响应,整个过程如下:

var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function(){    if(xmlhttp.readystate == 4 && xmlhttp.status == 200){        var response = xmlhttp.responseText;    }else if(xmlhttp.status == 400){ //或者可以是任何以4开头的状态码                //优雅的处理错误    }};//建立连接xmlhttp.open('GET', 'http://myserver/api', true);//发起请求xmlhttp.send();

对于简单,而且经常重复的任务来说,这是一种很繁琐的工作。如果想复用以上过程,最好进行封装或者使用代码库。

对于AngularJS来说要想从服务端获取一个用户的信息,假设请求后台的接口位于/api/user路径上,此接口可接受一个id属性 作为URL参数,那么使用AngularJS的核心$http服务发起XHR请求的方法示例如下:

$http.get('api/user', {params: {id: '5'}}).success(function(data, status, headers, config) {    //加载成功之后做一些事情}).error(function(data, status, headers, config) {    //处理错误});

以上是AngularJS的get方法,如果你想使用post请求向同一个URL发送请求,且带上一些post数据,则:

var postData = {text: 'long blob of text'};//下面这一行会被当成参数附加到URL后面,//所以POST请求最终会变成/api/user?id=5var config = {params: {id: '5'}};$http.post('api/user', postData, config) .success(function(data, status, headers, config) {    //加载成功之后做一些事情}).error(function(data, status, headers, config) {    //处理错误});

大多数常用的请求包括:
GET
HEAD
POST
DELETE
PUT
JSONP

原创粉丝点击