AngularJS发送异步Get/Post请求方法


Posted in Javascript onAugust 13, 2018

1、在页面中加入AngularJS并为页面绑定ng-app 和 ng-controller

<body ng-app="MyApp" ng-controller="MyCtrl" >
...
<script src="js/angular.min.js"></script>
<script src="js/sbt.js"></script>

2、添加必要的控件并绑定相应的事件

get:<input type="text" ng-model="param">{{param}} <br>
 post: <input type="text" ng-model="user.name"><input type="text" ng-model="user.password"><br>
 <button ng-click="get()">Get</button>
 <button ng-click="post()">Post</button>

3、在JS脚本中发送进行Get/Post请求

get

$scope.get = function () {
  $http.get("/get", {params: {param: $scope.param}})
   .success(function (data, header, config, status) {
    console.log(data);
   })
   .error(function (data, header, config, status) {
    console.log(data);
   })
  ;
 }

get 将参数放在URL中

$scope.get = function () {
  $http.get("/get?param="+$scope.param)
   .success(function (data, header, config, status) {
    console.log(data);
   })
   .error(function (data, header, config, status) {
    console.log(data);
   })
  ;
 }

post

$scope.post = function () {
  $http.post("/post", $scope.user)
   .success(function (data, header, config, status) {
    console.log(data);
   })
   .error(function (data, header, config, status) {
    console.log(data);
   })
  ;
 }

4、由Controller处理请求并返回结果

get

@RequestMapping("/get")
 @ResponseBody
 public Map<String,String> get(String param) {
  System.out.println("param:"+param);
  response.put("state", "success");//将数据放在Map对象中
  return response;
 }

post

@RequestMapping("/post2")
 @ResponseBody
 public void post2(@RequestBody User user, HttpServletResponse resp) {
  //返回不同的http状态
  if(user.getName()!=null&&!user.getName().equals("")){
   resp.setStatus(200);
  }
  else{
   resp.setStatus(300);
  }
 }

如果需要配置请求头部

$http({
   method : "POST",
   url : "/post",
   data : $scope.user
  }).success(function(data, header, config, status) {
   console.log(data);
  }).error(function(data, header, config, status) {
   console.log(data);
  });

5、由JS http请求的回调函数处理并执行下一步操作

HTML

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Request</title>
</head>

<body ng-app="MyApp" ng-controller="MyCtrl" >
get:<input type="text" ng-model="param"><br>
post: <input type="text" ng-model="user.name"><input type="text" ng-model="user.password"><br>
 <button ng-click="get()">Get</button>
 <button ng-click="post()">Post</button>
</body>
<script src="js/angular.min.js"></script>
<script src="js/sbt.js"></script>
</html>

sbt.js

var app = angular.module("MyApp", []);
app.controller("MyCtrl", function ($scope, $http) {

 $scope.get = function () {
  $http.get("/get", {params: {param: $scope.param}})
   .success(function (data, header, config, status) {
    console.log(data);
   })
   .error(function (response) {
    console.log(response);
   })
  ;
 }

 $scope.post = function () {
  $http.post("/post", $scope.user)
   .success(function (data, header, config, status) {
    console.log(data);
   })
   .error(function (data, header, config, status) {
    console.log(data);
   })
  ;
 }
});

以上这篇AngularJS发送异步Get/Post请求方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
jquery 事件执行检测代码
Dec 09 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
Bootstrap前端开发案例二
Jun 17 Javascript
webpack入门必知必会
Jan 16 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
React中使用外部样式的3种方式(小结)
May 28 Javascript
vue后台管理之动态加载路由的方法
Aug 13 #Javascript
jQuery中$原理实例分析
Aug 13 #jQuery
Angular服务Request异步请求的实例讲解
Aug 13 #Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 #Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 #jQuery
Angular异步变同步处理方法
Aug 13 #Javascript
利用JS实现一个同Excel表现的智能填充算法
Aug 13 #Javascript
You might like
论建造顺序的重要性
2020/03/04 星际争霸
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
对比分析json及XML
2014/11/28 Javascript
原生js实现日期联动
2015/01/12 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
玩转python爬虫之正则表达式
2016/02/17 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
中西医专业毕业生职业规划书
2014/02/24 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
小学生评语集锦
2014/04/18 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
python 中[0]*2与0*2的区别说明
2021/05/10 Python
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫