如何使用angularjs实现ajax异步请求
Sample.html
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>form</title>
<script type="text/javascript" src="js/angular.min.js"></script>
</head>
<body>
<form name="form1" id="form1" ng-controller="form1">
账号:<input type="text" name="username" ng-model="formData.username" required>
<span style="color:red" ng-show="form1.formData.username.$dirty && form1.formData.username.$invalid">
<span ng-show="form1.formData.username.$error.required">请输入账号</span>
</span>
<br />
邮箱:<input type="text" name="email" ng-model="formData.email" required>
<span style="color:red" ng-show="form1.formData.email.$dirty && form1.formData.email.$invalid">
<span ng-show="form1.formData.email.$error.required">请输入邮箱</span>
</span> <p>
<input type="submit" ng-disabled="form1.formData.username.$dirty && form1.formData.username.$invalid || form1.formData.email.$dirty && form1.formData.email.$invalid" value="提交" ng-click="submitForm()">
</p>
</form>
<script type="text/javascript">
var app = angular.module('myApp',[]);
app.controller("form1",function($scope,$http){
$scope.formData = {};
$scope.submitForm = function() {
$http({
method : 'POST',
url : 'Sample.action',
responseType : 'text',
data : $scope.formData
}).success(function(data) {
console.log(data); if (data=="success") {
location.replace("Main.action");
} else {
alert(data.message);
}
});
};
});
</script>
</body>
</html>
angularjs默认提交的方式是appliction/json,我在获取提交的参数username和pwd费了一番功夫,后台用struts2获取username和pwd的代码如下
SampleAction.java
InputStream is = arg0.getInputStream();
String headerJson = IOUtils.toString(is);
String headerMap = new Gson().fromJson(headerJson, new TypeToken<Map<String, String>>() {}.getType());
String username = ObjectUtils.toString(headerMap.get("username"));
String pwd = ObjectUtils.toString(headerMap.get("pwd"));
我后来是在基类做了一个改造:
public class ActionSupportExtend extends ActionSupport implements ServletRequestAware {
private HttpServletRequest request;
private String headerJson;
private Map<String,String> headerMap;
public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
try {
InputStream is = arg0.getInputStream();
this.headerJson = IOUtils.toString(is);
this.headerMap = new Gson().fromJson(headerJson, new TypeToken<Map<String, String>>() {}.getType());
} catch (IOException e) {
e.printStackTrace();
}
}
public String getHeaderAttribute(String key) {
String returnValue = "";
if(this.headerMap!=null) {
if(this.headerMap.containsKey(key)) {
returnValue = ObjectUtils.toString(this.headerMap.get(key));
}
}
return returnValue;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public String getHeaderJson() {
return headerJson;
}
public void setHeaderJson(String headerJson) {
this.headerJson = headerJson;
}
}
那么在每次取用angularjs的ajax异步请求的参数,就可以直接这么写:
public class SampleAction extends ActionSupportExtend {
@Override
public String execute() throws Exception {
String username = getHeaderAttribute("username");
String pwd = getHeaderAttribute("pwd");
// 业务逻辑代码省略
return SUCCESS;
}
}
如何使用angularjs实现ajax异步请求的更多相关文章
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING
话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...
- jquery Ajax异步请求之session
写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...
- ajax异步请求Response.Redirect重定向
一个ajax异步请求报错->捕获异常->重定向错误提示页面. 一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...
- jquery的ajax异步请求接收返回json数据
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...
- MVC&WebForm对照学习:ajax异步请求
写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...
- AJAX异步请求原理和过程
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...
- Ajax异步请求-简单模版
<script type="text/javascript"> window.onload = function () { document.getElementByI ...
- art.dialog 与 ajax 异步请求
上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助. 主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法. 加载使用art ...
随机推荐
- React Native学习
学习 首先,假使你已经安装了Nodejs 6,也有使用npm进行Nodejs的包管理 npm install -g react-native-cli 也可以使用yarn作为包管理工具 npm inst ...
- zoj 4020 The 18th Zhejiang University Programming Contest Sponsored by TuSimple - G Traffic Light(广搜)
题目链接:The 18th Zhejiang University Programming Contest Sponsored by TuSimple - G Traffic Light 题解: 题意 ...
- [onethink ucenter] 跨域名单点登录关键点
1.uc_client/data/cache/apps.php <?php $_CACHE['apps'] = array ( 1 => array ( 'appid' => '1' ...
- LOJ #6281. 数列分块入门 5-分块(区间开方、区间求和)
#6281. 数列分块入门 5 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 5 题目描述 给出 ...
- C# 推送到极光
https://docs.jiguang.cn/jpush/resources/ 下载后有完整的例子 引用 Jiguang.JPush.dll using System; using Jiguang. ...
- 【C语言期末实训】学生学籍管理系统
目录: 一,设计要求 ,总体要求: ,具体功能: 二,设计框架 三,程序代码 ,声明函数和头文件 ,声明结构体 ,声明全局变量 ,主体启动函数 ,主菜单函数 ,创建学生档案函数 ,编辑学生档案函数 , ...
- Bzoj3566/洛谷P4284 [SHOI2014]概率充电器(概率dp)
题面 Bzoj 洛谷 题解 首先考虑从儿子来的贡献: $$ f[u]=\prod_{v \in son[u]}f[v]+(1-f[v])\times(1-dis[i]) $$ 根据容斥原理,就是儿子直 ...
- Flask实战第37天:服务器权限验证
完成服务器权限验证之前,我们先如下页面先补上 帖子管理 {% extends 'cms/cms_base.html' %} {% block title %} 帖子管理-CMS管理系统 {% endb ...
- 旺财C# .NET代码生成器之DTcms4/5代码批量生成功能
经近半年的实战积累.于2017年6月底,增加对第三方开源软件DTcms(4和5都支持)的代码生成支持. 可以一键生成的DTcms4/5代码如下:1.Model经典三层实体2.DAL经典三层数据库访问层 ...
- 【模拟】Flo's Restaurant
[poj2424]Flo's Restaurant Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2960 Accept ...