angularJS之$http:与服务器交互示例


Posted in Javascript onMarch 17, 2017

在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"}}。

  1. method  {String} 请求方式e.g. "GET"."POST"
  2. url {String} 请求的URL地址
  3. params {key,value} 请求参数,将在URL上被拼接成?key=value
  4. data {key,value} 数据,将被放入请求内发送至服务器
  5. cache {boolean} 若为true,在http GET请求时采用默认的$http cache,否则使用$cacheFactory的实例
  6. timeout {number} 设置超时时间

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

  1. data 响应体
  2. status 相应的状态值
  3. headers 获取getter的函数
  4. 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 lang="zh-cn" >
<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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
jquery实现显示已选用户
Jul 21 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
Bootstrap每天必学之面板
Nov 30 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
JavaScript数组方法大全(推荐)
Jul 05 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
微信小程序如何再次获取用户授权的方法
May 10 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 #Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 #Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 #Javascript
详解Vue.js入门环境搭建
Mar 17 #Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 #Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 #Javascript
基于bootstrap实现收缩导航条
Mar 17 #Javascript
You might like
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python实现简单登陆系统
2018/10/18 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
经典的班主任推荐信
2013/10/28 职场文书
公积金转移接收函
2014/01/11 职场文书
上党课的心得体会
2014/09/02 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
安全生产工作汇报
2014/10/28 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
工作经验交流材料
2014/12/30 职场文书
西柏坡导游词
2015/02/05 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS