如何使用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 ...
随机推荐
- str 编码
你需要的是让编码用实际编码而不是 ascii 1 对需要 str->unicode 的代码,可以在前边写上 import sys reload(sys) sys.setdefault ...
- LOJ #6283. 数列分块入门 7-分块(区间乘法、区间加法、单点查询)
#6283. 数列分块入门 7 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 2 题目描述 给出 ...
- 876. Middle of the Linked List【Easy】【单链表中点】
Given a non-empty, singly linked list with head node head, return a middle node of linked list. If t ...
- linux文件简单操作
1.vim常用快捷键 dd/ndd 删除1行/删除n行 yy/nyy 复制1行/复制n行 p 粘贴 u 撤销 dw/ndw 删除一个单词/删除n个单词 G /nG 到一行尾/第n行尾 :!+命令 ...
- Sqli-labs less 10
Less-10 本关我们从标题就可以看到 <基于时间-双引号>,所以很明显的这关要我们利用延时注入进行,同时id参数进行的是 " 的处理.和less9的区别就在于单引号(')变成 ...
- apache配置httpd.conf相关
1.apache开启压缩AddOutputFilterByType 找到并打开apache/conf目录中的httpd.conf文件 在httpd.conf中打开deflate_Module,head ...
- 【拓展Lucas】模板
求\(C_n^m \mod p\),写得太丑了qwq. 第一次写拓展Lucas竟然是在胡策的时候qwq写了两个半小时啊_(:з」∠)还写挂了一个地方qwq 当然今天胡策我也是第一次写中国剩余定理(ˇˍ ...
- [BZOJ4709][JSOI2011]柠檬(斜率优化DP)
显然选出的每一段首尾都是相同的,于是直接斜率优化,给每个颜色的数开一个单调栈即可. #include<cstdio> #include<vector> #include< ...
- 【贪心+优先队列】POJ3190-Stall Reservations
[题目大意] 给出每个奶牛挤奶的时间,同一时间同一畜栏内不会有两头奶牛挤奶,问至少要多少个畜栏. [思路] 将奶牛按照挤奶开始的时间进行升序排序,再用一个小顶堆维护每一个畜栏当前的挤奶结束时间.对于当 ...
- [JZOJ5426]摘Galo
题目大意: 有一棵n个结点的树,每个点都有一个权值,你要从中选出不超过k+1个点使得权值和尽量大. 同时要注意如果一个点被选择,那么它的子树和这个点到根结点路径上的点不能被选择. 思路: 很水的树形D ...