angular $http服务详解

它是对原生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指定;

原文地址:https://www.cnblogs.com/anyun/p/8665288.html

时间: 2024-11-04 03:50:11

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

CentOS 默认基本服务详解

1.使用chkconfig --list来查看安装的服务,比如我这里最小化安装后的一些服务 [[email protected] ~]# chkconfig --list auditd          0:off   1:off  2:on    3:on    4:on   5:on    6:off crond           0:off   1:off  2:on    3:on    4:on   5:on    6:off ip6tables       0:off  1:off

HTTPD服务详解

HTTPD服务详解 目录 一.httpd的程序版本 二.httpd的特性 三.httpd的功能特性 四.httpd使用 1.httpd的安装 2.程序环境 Httpd-2.2 (Centos6) http-2.4 (Centos7) 五.http配置相关说明 1.修改监听的ip和port 2.持久连接 3.MPM 4.DSO配置指令模块加载 5.定义Main'server文档页面路径 6.站点访问控制 文件系统路径 URL路径 7.<Directory> 中基于源地址实现访问控制 Option

winxp计算机管理中服务详解

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

CentOS5启用Telnet服务详解(转载)

CentOS5启用Telnet服务详解 配置步骤如下: 一.安装telnet软件包(通常需要两个) 1. telnet(或 telnet-client),这个软件包提供telnet 客户端程序: 2. telnet-server,这个软件包提供telnet 服务器端程序: 安装之前先检查系统是否已安装这些软件包,方法如下: [[email protected] /]#rpm –qa |grep telnet 如果没有检测到软件包,则需要进行安装.CentOS5默认已安装了telnet软件包,te

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

本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块. 要学习这个服务,先要了解另一个指令: ng-bing-html. 顾名思义,ng-bind-html和ng-bind的区别就是,ng-bind把值作为字符串,和元素的内容进行绑定,但是ng-bind-html把值作为html,和元素的html进行绑定.相当于jq里面的.text()和.html(). 但是,出于安全考虑,如果我们直接使用ng-bind-html是会报错的,ng-bind-html后面

Oracle启动服务详解

成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现非常卡的状况,通过禁止非必须开启的Oracle服务可以提升电脑的运行速度.那么,具体该怎么做呢? 按照win7 64位环境下Oracle 11g R2安装详解中的方法成功安装Oracle 11g后,共有7个服务,分别为: 1.Oracle ORCL VSS Writer Service, 2.OracleDBConsoleorcl, 3.OracleJobSchedulerORCL, 4.OracleMT

Oracle 11g的7个服务详解

成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy).它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能.(非必须启动) 2. OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是

MySQL服务器主从服务详解

MySQL主从复制概念 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从

部署Tomcat(Web)服务详解

一.Tomcat服务简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.一般来说,Tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端.如图: Tomcat自5.x版本以来,其性能上已经得到了大幅的提

服务详解网址

mongodb 配置文件: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 这里说明了各个组件是干什么的:openstack https://docs.openstack.org/pike/admin/ 安装OpenStack 引导手册:https://docs.openstack.org/liberty/zh_CN/install-guide-rdo/overview.html#example-archi