ajax 请求数据的两种方法
实现ajax 异步访问网络的方法有两个。第一个是原始的方法,第二个是利用jquery包的
原始的方法不用引入jquery包,只需在html中编写script 片段
这里我演示的是一个传递参数查询的例子;
varurl="expert_ZFTservlet?expert_name="+"曾攀";
一.原始的方法
<script type="text/javascript">
function load(){
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera,Safari
xmlhttp= newXMLHttpRequest();
}else{// code for IE6, IE5
xmlhttp= newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange= function(){
if (xmlhttp.readyState ==4 && xmlhttp.status == 200) {//获得了请求数据
var expertinfolist = xmlhttp.responseText;
//发送请求数据到myDiv document.getElementById("myDiv").innerHTML=expertinfolist;
}
}
var url="expert_ZFTservlet?expert_name="+"曾攀";
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv">
</div>
<button type="button" onclick="load()" >ChangeContent</button>
</body>
二.利用jquery包的ajax请求
在使用该方法前需要引入Jquery包
<script src="js/jquery-1.5.1.min.js" type="text/javascript"></script>
<script>
$.ajax({
type:'post', //方法类型
url:" expert_ZFTservlet?expert_name="+"曾攀",//请求地址
dataType:'json', //数据类型
success:callback//请求成功处理函数
});
//返回函数
function callback(data){
alert(data); //获得请求返回对象;
}
</script>
这个是我请求的servlet 的一些代码
expertinfolist为我的查询结果,
为一个list<Object>类型的对象
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriterout=response.getWriter();
out.print(expertinfolist);
out.flush();
out.close();