$http

在angularJS中与远程HTTP服务器交互时会用一个非常关键的服务-$http。


  1.  $http是angular中的一个核心服务,利用浏览器的xmlhttprequest或者via JSONP对象与远程HTTP服务器进行交互。

  2.  $http的使用方式和jquery提供的$.ajax操作比较相同,均支持多种method的请求,get、post、put、delete等。

  3.  $http的各种方式的请求更趋近于rest风格。

  4.    在controller中可通过与$scope同样的方式获取$http对象,e.g. function controller($scope,$http){}


下面进行$http服务的使用说明,调用如下:

$http(config)
.success(function(data,status,headers,config){})
.error(function(data,status,headers,config){});

1、config为一个JSON对象,其中主要包含该请求的url、data、method等,如{url:"login.do",method:"post",data:{name:"12346",pwd:"123"}}。

  • method  {String} 请求方式e.g. "GET"."POST"

  • url {String} 请求的URL地址

  • params {key,value} 请求参数,将在URL上被拼接成?key=value

  • data {key,value} 数据,将被放入请求内发送至服务器

  • cache {boolean} 若为true,在http GET请求时采用默认的$http cache,否则使用$cacheFactory的实例

  • timeout {number} 设置超时时间

  2、success为请求成功后的回调函数,error为请求失败后的回调函数,这里主要是对返回的四个参数进行说明。

  • data 响应体

  • status 相应的状态值

  • headers 获取getter的函数

  • config 请求中的config对象,同上第1点    

  

  为了方便大家与HTTP服务器进行交互,angularJS提供了各个请求方式下方法。

  • $http.put/post(url,data,config) url、name必填,config可选

  • $http.get/delete/jsonp/head(url,confid) url必填,config可选

  url、data、config与$http的参数一致,


下面有一个simple demo用于展示如何使用$http()及$http.post()。

<!DOCTYPE HTML>
<html >
<head>
    <meta charset="UTF-8">
    <title>CSSClasses</title>
    <script src="angular.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function ctrl($http,$scope){
        $scope.login = function(user){
            $http.post("login.do",user).success(function(data, status, headers, config){
                alert("success");
            }).error(function(data, status, headers, config){
                alert("error");
            })
        }
        $scope.login1 = function(user){
            $http({url:"login.do",data:user}).success(function(data, status, headers, config){
                alert("success");
            }).error(function(data, status, headers, config){
                alert("error");
            })
        }
    }
</script>
</head>
<body ng-app>
    <div ng-controller="ctrl">
        <form name="loginFm">
            Name:<input ng-model="user.name" />
            pwd: <input ng-model="user.pwd" />
            <input type="button" value="login" ng-click="login(user)" />
            <input type="button" value="login1" ng-click="login1(user)" />
        </form>
    </div>

</body>
</html>


转载于:https://my.oschina.net/lee2013/blog/301480

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值