struts2中使用原生ajax请求后台数据
来源:互联网 发布:最霸气的帝王诗 知乎 编辑:程序博客网 时间:2024/06/14 11:15
struts2中使用ajax请求后台数据在平时是很常用的技术点,下面简单介绍一下:
1、配置struts.xml文件
<struts><package name="default" namespace="/" extends="struts-default"><result-types><result-type name="json" class="org.apache.struts2.json.JSONResult"></result-type></result-types><action name="UserAction_*" class="com.ys.struts.UserAction" method="{1}"><!--<result name="success">/index.jsp</result>--><result name="success" type="json"><param name="root">result</param></result></action> </package></struts>
2、处理类UserAction
public class UserAction extends ActionSupport{private String result;public String getResult() {return result;}public void setResult(String result) {this.result = result;}public String index() throws Exception {result = "{'flag':'false','errormsg':'出现错误'}";return "success";}}
3、前端html请求
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><script type="text/javascript" src="script/jquery-1.11.1.min.js"></script><script>function getGoods(){ $.ajax({ type:"GET", url:"UserAction_index.action", data:{ }, dataType:'json', success:function(data) { var data = eval('(' + data + ')'); if(data.flag == 'true'){ alert(123); } }, async:false }); var xmlhttp;if(window.XMLHttpRequest){//code for IE7,Firefox,Chrome,Opera,Safarixmlhttp=new XMLHttpRequest();}else{//code for IE6,IE5xmlhttp=new ActiveXOjbect("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function(){//alert(xmlhttp.readyState);if(xmlhttp.readyState==4&&xmlhttp.status==200){var objResult= eval("("+xmlhttp.responseText+")");var Result= eval("("+objResult+")");if(Result.flag == 'false'){alert(Result.errormsg); }}}xmlhttp.open("get","UserAction_index",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send(); }</script> </head> <body> <input type="button" value="点击" onclick="getGoods();"/> </body></html>
我用了两种方式进行ajax请求,一种是JQuery提供的$.ajax方式,很明显,这种方式简单方便;第二种是原生的ajax请求,通过struts2从后台得到了数据即:
var objResult= eval("("+xmlhttp.responseText+")");var Result= eval("("+objResult+")");if(Result.flag == 'false'){alert(Result.errormsg);}xmlhttp.responseText得到了服务器响应的内容,我使用eval将它转成对象,但是调用objResult.flag浏览器显示为undefined,直接输出objResult还是一段json数据即:
{'flag':'false','errormsg':'出现错误'},怎么就是得不到呢,为什么不是json对象,最后,我想,浏览器弹出来的还是字符串,而不是[Object]这种对象的形式,说明objResult还不是json对象,于是我又对objResult使用eval,结果,果然是,我得到了正确的结果。
对于这两种方式,我是用HttpWatch进行记录:
0 0
- struts2中使用原生ajax请求后台数据
- ajax 原生请求数据
- Ajax请求后台数据
- ajax 请求后台数据
- struts2中使用ajax请求验证表单
- Ajax +SpringMVC 请求后台数据
- django 中使用ajax 检查后台数据
- struts2.5.1使用jQuery的ajax请求,返回json数据
- 原生js使用xmlhttpRequest实现ajax请求
- 使用原生js实现ajax请求
- 2-使用原生js发送ajax请求
- 使用原生js创建ajax请求
- ajax请求后台并接收返回数据
- 原生js的Ajax提交json数据到后台
- 原生Ajax请求
- 原生/jq ajax请求
- 原生ajax POST请求
- js原生ajax请求
- hdu 1465 不容易系列之一(错排模板)
- 百度地图BaiduMap--学习(三)------让自己的位置显示在地图上之“火星差”
- C语言:从键盘输入一个数n,求n的阶乘(n!)
- Java API操作hbase
- 【BZOJ2584】memory,扫描线+拓扑图+骗
- struts2中使用原生ajax请求后台数据
- struts2中的abstract
- jQuery EasyUI DataGrid - 格式化列(formatter )
- 日常生活小技巧 -- win10造字
- jmeter之——java压测
- apache2日志格式
- qq2689066360 真实姓名 谭绪武 黑客排行榜都是假的 在这里骗钱 大家不要上当 可以去我相册看证据
- WPF笔记一 关于XAML
- java编程思想(十三)总结