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 相关文章推荐
来自chinaz的ajax获取评论代码
May 03 Javascript
div模拟选择框示例代码
Nov 03 Javascript
jQuery对html元素取值与赋值的方法
Nov 20 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
Feb 06 Javascript
js验证上传图片的方法
May 12 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
Three.js实现简单3D房间布局
Dec 30 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
vue2中filter()的实现代码
2017/07/09 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
python实现哈希表
2014/02/07 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
奇怪的鱼:Weird Fish
2018/03/18 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
应用化学专业职业生涯规划书
2013/12/31 职场文书
教师党员承诺书2015
2015/01/21 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
初中政治教学反思
2016/02/23 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
详解Python中__new__方法的作用
2022/03/31 Python