我正在使用XMLHttpRequest来创建一个简单的表单submitand从servlet获取会话变量。但似乎没有任何工作。有人可以指出我哪里错了吗?XMLHttpRequest请求有什么问题?
这里是形式
<form method="post" target="_self" action="/temp/Welcome.html">
<table>
<tr>
<td>Email</td>
<td><input type="text" id="email" name="email" value="[email protected]"></td>
</tr>
<tr>
<td>Project ID</td>
<td><input type="text" id="projectid" name="projectid" value="1111"></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="button" id="submitbutton" value="Submit" onclick="submitLogin()"></td>
</tr>
</table>
</form>
这里是submitLogin功能
function submitLogin()
{
var url_action="/temp/Login";
var client;
var dataString;
if (client.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari
client=new XMLHttpRequest();
} else { // IE6, IE5
client=new ActiveXObject("Microsoft.XMLHTTP");
}
client.onreadystatechange=function(){
alert(client.responseText);
if(client.readyState==4&&client.status==200)
{
alert(client.responseText);
}
else
alert("Error: return status code "+client.status+" "+client.statusText);
};
dataString="email="+document.getElementById("email").value;
client.open("POST",url_action,true);
client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
client.send(dataString);
}
和Login.java的servlet我的帖子方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
paramMap=request.getParameterMap();
if (paramMap == null)
throw new ServletException(
"getParameterMap returned null in: " + getClass().getName());
iterator=paramMap.entrySet().iterator();
//System.out.println(paramMap.size());
String str="";
while(iterator.hasNext())
{
Map.Entry me=(Map.Entry)iterator.next();
String[] arr=(String[])me.getValue();
emailId=arr[0];
//System.out.println(me.getKey()+" > "+emailId);
}
rand=new Random();
randomInt=rand.nextInt(1000000);
emailId=randomInt+emailId;
System.out.println(emailId);
out.println(emailId);
/*creates a new session if a session does not exist already*/
session=request.getSession();
session.setAttribute("uid", emailId);
out.close();
}
无警报和系统.out似乎显示任何回应。请指导我。由于
注:IE 8这表明XMLHttpRequest是空或不是对象,login.js在行号:9
第9行是什么?请不要让我们猜测。 – Thomas 2011-05-09 05:53:20
我强烈建议使用jQuery,如果你正在做任何与AJAX。他们已经找到并修复了几乎所有的跨浏览器错误,并使其更易于控制。 – 2011-05-09 05:54:57
你有没有考虑过使用JQuery来简化你的代码? – Codemwnci 2011-05-09 05:55:23