以下为ajax和jsp之间调用。目前代码有问题,希望高手赐教。
主要有以下问题:
1、callback方法中的status!=200而是==0,不明白为什么?(网上说是本地正确反馈)
2、获取不到jsp中out.print的值,获取到的responseText==“”,但是明明给传值了,不解。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<button name="aa" value="是否支持ajax" οnclick="getHttpRequest();">是否支持ajax</button>
<script type="text/javascript">
function getHttpRequest(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
alert("非IE获取");
}catch(e){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
alert("IE6.0+获取");
}catch(e){
try{
xmlHttp = new ActiveXObeject("Microsoft.XMLHTTP");
alert("IE低版本获取");
}catch(e){
alert("您的浏览器不支持AJAX");
return false;
}
}
}
return xmlHttp;
}
//-----------------------------------------------------------------------
//打开服务器响应过程函数
//-----------------------------------------------------------------------
function callback(xmlrequest){
if(xmlrequest.readyState==4 && xmlrequest.status==200){
var result=xmlrequest.responseText;
document.getElementById("checkInfo").innerHTML=result;
}
}
function go(){
//判断表单输入内容---------------------------------------------
var form=document.loginForm;
if(form.username.value==""){
document.getElementById("checkInfo").innerHTML="用户名不能为空";
return;
}
if(form.pass.value==""){
document.getElementById("checkInfo").innerHTML="密码不能为空";
return;
}
document.getElementById("checkInfo").innerHTML="正在登录,请稍候......";
document.getElementById("bt").disabled=true;
var xmlHttp = getHttpRequest();
if(xmlHttp == null){
alert("您的浏览器不支持AJAX");
}else{
//构造发送数据字符串
var url="../deal/getResult.jsp";
var formData="username="+form.username.value+"&pass="+form.pass.value;
url= url+ "?"+formData;
alert(url);
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=function(){
callback(xmlHttp);
}
xmlHttp.send(null);
}
}
</script>
<div id="checkInfo">请填写用户名和密码</div>
<form action="" method="post" name="loginForm" >
<input type="text" name="username" />
<br />
<input type="password" name="pass" />
<br />
<input id="bt" type="button" name="Submit" value="提交验证" onClick="go()">
<br />
</form>
</body>
</html>
调用的jsp判断ajax提交内容,根据提交内容返回结果,显示结果:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.io.PrintWriter"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
String username = request.getParameter("username");
String password = request.getParameter("pass");
response.setHeader("Charset","UTF-8");
response.setContentType("text/html; charset=UTF-8");
if("admin".equals(username) && "admin".equals(password)){
out.print("恭喜你通过验证");
}else{
out.print("用户名或者密码有误");
}
%>