zoukankan      html  css  js  c++  java
  • 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指定;

  • 相关阅读:
    oracle之sqlplus讲解
    oracle数据库--启动和关闭
    linux下使用SSL代理(SSLedge)
    Titanium系列--利用js动态获取当前时间
    Titanium系列--利用Titanium开发android App实战总结
    Titanium系列--我常用的Titanium的快捷键(持续更新中。。)
    Titanium系列--安装Titanium Studio 中的Android SDK,JDK以及环境变量的配置(二)
    Titanium系列--Titanium的简介、Titanium Studio安装和配置(一)
    Happymenu新的开始
    对IEnumerable<T>和IQueryable<T>的一点见解
  • 原文地址:https://www.cnblogs.com/anyun/p/8665288.html
Copyright © 2011-2022 走看看