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 相关文章推荐
IE下js调试工具Companion.JS
Oct 15 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
怎么清空javascript数组
May 11 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
javascript中mouseenter与mouseover的异同
Jun 06 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
微信小程序使用npm支持踩坑
Nov 07 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python中turtle作图示例
2017/11/15 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
海南地接欢迎词
2014/01/14 职场文书
给女儿的表扬信
2014/01/18 职场文书
班班通校本培训方案
2014/03/12 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
环境卫生标语
2015/08/03 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书