它是对原生XMLHttpRequest对象的简单封装,

这个方法会返回一个promise对象,具有sccess和error两个方法。

当然,我们也可以在响应返回时用then 方法来处理,会得到一个特殊的参数,代表了对象的成功或失败信息,

或者可以使用success和error回调  代替。

$http({
url:url, //请求的url路径
method:method, //GET/DELETE/HEAD/JSONP/POST/PUT
params:params , //转为 ?param1=xx1¶m2=xx2的形式
data: data //包含了将被当做消息体发送给服务器的数据,通常在POST请求时使用
}
}).success(function(response, status, header, config, statusText){
//成功处理
}).error(function(data,header,config,status){
//错误处理
});

当我们把$http当成函数来使用时即$http(),需要传入一个对象,这个对象可以包含以下键 :

1、method 字符串  表示发送的请求类型 get post jsonp等等

2、url 字符串 绝对或者相对的URL,请求的目标

3、params 字符串或对象 会被转化成查询字符串加到URL后面,如果不是字符串会被JSON序列化

4、data 字符串或者对象 这个对象包含了被当做消息体发送给服务器的数据,一般在POST请求中使用,并且从angular1.3开始可以在POST请求里发送二进制数据

如var blob = new Blob({name:’张三’}); $http({method:’get’,url:’/‘,data:blob});

5、headers 对象 在我们做POST跨域和后台配合的时候就用到了headers,其代表随请求发送的HTTP头字符串

6、xsrfHeaderName 字符串 保存XSFR令牌的HTTP头的名称

7、xsrfCookieName  字符串 保存XSFR令牌的cookie的名称

8、transformRequest 函数或函数组 用来对HTTP请求头和体信息进行转换,并返回转化后的版本,通常用于在请求发送给服务器之前对其序列化

9、transformResponse 函数或函数组 用来HTTP响应头和响应体信息进行转换,并返回转化后的版本,通常用来反序列化

10、cache 布尔或缓存对象 如果设置为true angularjs会用默认的$http缓存对GET请求进行缓存

11、timout 数值或者promise对象,如果为数值那么请求会在指定的毫秒后结束(会跳到失败的error方法里) ,如果为对象那么promise对象在被resolve时请求会被中止,方法执行完毕再执行请求

12、responseType 字符串 该选项会在请求中设置XMLHttpResponseType属性有以下类型:

    “”字符串默认,”arraybuffer”(arraybuffer),”blob”(blob对象),“document”(HTTP文档),”json“(从JSON对象解析出来的json字符串),

    ”text“(字符串),”moz-blob“(Firefox的接收进度事件),”moz-chunked-text“(文本流),”moz-chunked-arraybuffer”(arraybuffer流)

$http提供了一些快捷方法让我们使用,一共有六个(其实是六种请求模式)

1、$http.get(url字符串,config可选的配置-对象类型) 返回HttpPromise对象

2、$http.delete(url字符串,config可选的配置-对象类型) 返回HttpPromise对象

3、$http.head(url字符串,config可选的配置-对象类型) 返回HttpPromise对象

4、$http.jsonp(url字符串,config可选的配置-对象类型) 返回HttpPromise对象

5、$http.post(url字符串,data对象或字符串,config可选的配置-对象类型) 返回HttpPromise对象

6、$http.put(url字符串,data对象或字符串,config可选的配置-对象类型) 返回HttpPromise对象

通过angular $http POST提交data数据与jQuery的$.ajax()区别:

ajax默认的request header Content-Type 是application/x-www-form-urlencoded,这种数据到控制层可以用@RequestParam, @ModelAttribute、@RequestBody都能处理

angular $http默认是application/json,这种数据到控制层必须由@RequestBody来处理

说明:request的body部分的数据编码格式由header部分的Content-Type指定;

angular $http服务详解的更多相关文章

  1. winxp计算机管理中服务详解

    winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blo ...

  2. Android中Service(服务)详解

    http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...

  3. WCF中队列服务详解

    WCF中队列服务详解 一.引言 在前面的WCF服务中,它都要求服务与客户端两端都必须启动并且运行,从而实现彼此间的交互.然而,还有相当多的情况希望一个面向服务的应用中拥有离线交互的能力.WCF通过服务 ...

  4. 【转】SSH服务详解

    [转]SSH服务详解 第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Gro ...

  5. (转)SSH服务详解

    SSH服务详解 原文:http://www.cnblogs.com/clsn/p/7711494.html 第1章 SSH服务1.1 SSH服务协议说明SSH 是 Secure Shell Proto ...

  6. HTTPD之二————HTTPD服务详解————httpd的配置文件常见设置

    HTTPD之二----HTTPD服务详解----httpd的配置文件常见设置 HTTP服务器应用 http服务器程序 httpd apache nginx lighttpd 应用程序服务器 IIS,a ...

  7. angular-ngSanitize模块-$sanitize服务详解

    本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块. 要学习这个服务,先要了解另一个指令: ng-bing-html. 顾名思义,ng-bind-html和 ...

  8. Java从入门到精通——数据库篇Oracle 11g服务详解

    装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...

  9. windows 7 系统进程服务详解

    windows 7已经发布有段时间了,相信很多网友都已经换上了传说中非常完美的win7系统.win7不仅继承而且还超越了vista的美观界面,性能优化方面也下足了功力.还拥有强大的win xp兼容性, ...

  10. Oracle 11g服务详解

    装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...

随机推荐

  1. 第二百八十五节,MySQL数据库-MySQL函数

    MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...

  2. 控制反转是Spring框架的核心。

    早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题.他总结出是依赖对象的获得被反转了.基于这个结论,他为控制反转创造了一个更好的名字:依赖注入.许多非凡的应用(比H ...

  3. nodejs基础 -- 函数

    Node.js 函数 在JavaScript中,一个函数可以作为另一个函数接收一个参数.我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数. Node.js中函数的使用与Javasc ...

  4. QT把widget转换成图片后打印

    from PyQt5.QtWidgets import (QApplication, QWidget, QTableWidget,QPushButton, QVBoxLayout, QTableWid ...

  5. mui.back()返回刷新功能

    使用场景:操作某个步骤需要获取用户信息,如果用户未登陆,则跳转登录页面,登陆成功之后使用mui.back()返回父页面,父页面必须刷新. 子页面:登陆页 父页面:跳转登录页的页面 1. 在子页面初始化 ...

  6. ASP.NET自带对象JSON字符串与实体类的转换

    关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个 ...

  7. Unity在协程内部停止协程自身后代码执行问题

    当在协程内部停止自身后,后面的代码块还会继续执行,直到遇到yield语句才会终止. 经测试:停止协程,意味着就是停止yield,所以在停止协程后,yield之后的语句也就不会执行了. 代码如下: us ...

  8. [转]在ubuntu下安装sublime text

    1添加Sublime-text-3软件包的软件源sudo add-apt-repository ppa:webupd8team/sublime-text-3 2使用以下命令更新系统软件源sudo ap ...

  9. ubuntu下vim配置(刷题和比赛两套)

    1. 平时刷题练习使用 "mswin.vim 插件提供windows下的编辑快捷键功能 source $VIMRUNTIME/mswin.vim behave mswin set nu se ...

  10. android:json解析的两个工具:Gson和Jackson的使用小样例

    1.简单介绍 json是android与server通信过程中经常使用的数据格式,比如.例如以下是一个json格式的字符串: {"address":"Nanjing&qu ...