后台接收前台Ajax所传的值 ajaxjsonjavascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 js把ajax获取的东西,扔到隐藏域里,后台就可以获取到了,小心异步,获取的值为null; 参考http://itlab.idcquan.com/Java/WebServices/920729.html Action中添加属性showType给这个属性设置get set 方法,struts2会自动把ajax传递的这个值赋给showType 把想传的值拼在url后面即可, Action里提供showType属性,并提供get-set方法,ajax:data可以使用{showType:showType} dataType : 'json',//参数 data: "showType="+showType,你换成:dataType : 'json',//参数 data: {"showType":showType} 试试 1、你要在你的js里面先获取到showType的值,然后作为参数传递到后台。2、后台是struts2的话,只需要定义一下变量,然后get/set一下,在action对应的方法里直接获取就可以了 $.ajax({ type : "get", //提交的类型 url : "./growthTableJsonAction", //提交地址 dataType : 'json',//参数 data: {showType:showType}, success : function(data) { alert($("showType").val()); var acceptNumber = new Array(); //受理人数 var bareMetalNumber = new Array(); //件数 var etingDate = new Array(); //横坐标 $.each(data, function(i, val) { acceptNumber.push(data[i].acceptNumber); bareMetalNumber.push(data[i].bareMetalNumber); etingDate.push(data[i].etingDate); });} });<s:select name="showType" id="showType" readOnly="true" cssClass="width-158" onchange="selected()" list="#{1:'月份',2:'年份'}" tabindex="1"></s:select> 四、AJAX原理 4.1概述 4.2编写步骤 1、测试与服务器的通信 a、创建XmlHttpRequest对象,固定写法: function createXmlHttpRequest(){ var xmlHttp; try{ //Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); }catch (e){ try{ //Internet Explorer xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){} } } return xmlHttp; } var xhr = createXmlHttpRequest(); b、注册状态变化的事件处理: xhr.onreadystatechange=function(){ if(xhr.readyState==4){ //真正的处理 if(xhr.status==200||xhr.status==304){ //服务器正确返回 var data = xhr.responseText;//服务器返回的数据 //把返回的数据写到div中 document.getElementById("d1").innerHTML=data; } } } c、初始化xhr对象 xhr.open("GET","/ajaxday02/servlet/ServletDemo1?time="+new Date().getTime()); d、向服务器发送数据 xhr.send(null); 4.3XmlHttpRequest详解(JavaScript对象) 常用属性: readyState:代表着XmlHttpRequest对象的当前状态 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法) 1 (初始化) 对象已建立,尚未调用send方法 2 (发送数据) send方法已调用,但是当前的状态及http头未知 3 (数据传送中) 已接收部分数据,因为响应及http头不全, 4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 只有为4,客户端操作相应的处理 ------------------------------------------------- status:代表服务器的HTTP相应码。200是成功。304服务器端内容没有改变。 ------------------------------------------------- responseText:服务器返回文本数据。 onreadystatechange:当XmlHttpRequest对象的readyState发生变化时,都会触发该事件。 常用方法: open(method,url,isAsync):初始化XmlHttpRequest对象。 method:请求方式。一般使用get或者post url:请求的服务器地址。可以使用相对路径或者绝对路径。 特别注意:如果该地址没有变化,浏览器一般不会再次发出请求的。解决办法,加上一个时间戳。 /ajaxday02/servlet/ServletDemo1?time="+new Date().getTime() isAsync:是否是异步请求。默认是true。 send(requestData):向服务器发送请求数据。没有传递null。 数据时用在POST请求方式的。数据形式:username=admin&password=123 通过XmlHttpRequest向服务器发送POST请求: //设置请求消息头,告知服务器,发送的正文数据的类型。 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//固定写法 //发送数据 xhr.send("username=admin&password=123"); 4.4服务端返回的数据 HTML数据 responseText:他是XmlHttpRequest对象的一个属性。服务器返回的数据会封装到此属性中。 XML数据 responseXML:返回的是xml对象的DOM对象。 用于登录的弹出层的jquery插件,什么样的比较和呢 是怎么实现呢 JS如何判断对象存不存在 感觉有点简单的问题 高分 用户设置页面刷新时间 求高手指教.........在线等回复 求在网页上运行exe文件的方法!!! 做了个Table 的Row拖动,有兴趣的来看看 这个函数是什么意思? jquery如何将json数据遍历成菜单? 关于js中对象引用的问题 js页面重定向
data: "showType="+showType,
你换成:
dataType : 'json',//参数
data: {"showType":showType} 试试
2、后台是struts2的话,只需要定义一下变量,然后get/set一下,在action对应的方法里直接获取就可以了
type : "get", //提交的类型
url : "./growthTableJsonAction", //提交地址
dataType : 'json',//参数
data: {showType:showType},
success : function(data) {
alert($("showType").val());
var acceptNumber = new Array(); //受理人数
var bareMetalNumber = new Array(); //件数
var etingDate = new Array(); //横坐标
$.each(data, function(i, val) {
acceptNumber.push(data[i].acceptNumber);
bareMetalNumber.push(data[i].bareMetalNumber);
etingDate.push(data[i].etingDate);
});
}
});
<s:select name="showType" id="showType" readOnly="true"
cssClass="width-158" onchange="selected()"
list="#{1:'月份',2:'年份'}" tabindex="1">
</s:select>
4.1概述
4.2编写步骤
1、测试与服务器的通信
a、创建XmlHttpRequest对象,固定写法:
function createXmlHttpRequest(){
var xmlHttp;
try{ //Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}catch (e){
try{ //Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){}
}
}
return xmlHttp;
}
var xhr = createXmlHttpRequest();
b、注册状态变化的事件处理:
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
//真正的处理
if(xhr.status==200||xhr.status==304){
//服务器正确返回
var data = xhr.responseText;//服务器返回的数据
//把返回的数据写到div中
document.getElementById("d1").innerHTML=data;
}
}
}
c、初始化xhr对象
xhr.open("GET","/ajaxday02/servlet/ServletDemo1?time="+new Date().getTime());
d、向服务器发送数据
xhr.send(null);
4.3XmlHttpRequest详解(JavaScript对象)
常用属性:
readyState:代表着XmlHttpRequest对象的当前状态
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,
4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
只有为4,客户端操作相应的处理
-------------------------------------------------
status:代表服务器的HTTP相应码。200是成功。304服务器端内容没有改变。
-------------------------------------------------
responseText:服务器返回文本数据。
onreadystatechange:当XmlHttpRequest对象的readyState发生变化时,都会触发该事件。
常用方法:
open(method,url,isAsync):初始化XmlHttpRequest对象。
method:请求方式。一般使用get或者post
url:请求的服务器地址。可以使用相对路径或者绝对路径。
特别注意:如果该地址没有变化,浏览器一般不会再次发出请求的。解决办法,加上一个时间戳。
/ajaxday02/servlet/ServletDemo1?time="+new Date().getTime()
isAsync:是否是异步请求。默认是true。
send(requestData):向服务器发送请求数据。没有传递null。
数据时用在POST请求方式的。数据形式:username=admin&password=123
通过XmlHttpRequest向服务器发送POST请求:
//设置请求消息头,告知服务器,发送的正文数据的类型。
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//固定写法
//发送数据
xhr.send("username=admin&password=123");
4.4服务端返回的数据
HTML数据
responseText:他是XmlHttpRequest对象的一个属性。服务器返回的数据会封装到此属性中。
XML数据
responseXML:返回的是xml对象的DOM对象。