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 相关文章推荐
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
JS获取子窗口中返回的数据实现方法
May 28 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
Vue Promise的axios请求封装详解
Aug 13 Javascript
vue侧边栏动态生成下级菜单的方法
Sep 07 Javascript
vue子传父关于.sync与$emit的实现
Nov 05 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
PHP url 加密解密函数代码
2011/08/26 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
jquery图片上下tab切换效果
2011/03/18 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
详解jenkins自动化部署vue
2019/05/14 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python 中的 else详解
2016/04/23 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
幼儿园五一活动方案
2014/02/07 职场文书
品牌宣传方案
2014/03/21 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
客房领班岗位职责
2015/02/11 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Python进行区间取值案例讲解
2021/08/02 Python
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js