最近在学AJAX,但是req.readyState和req.status始终不能传回正确的值,请教大神,代码附上

这个是网页端的JS脚本程序代码:varreq;functionRtoC(){varusername=document.getElementById("username")... 这个是网页端的JS脚本程序代码:

var req;
function RtoC(){
var username=document.getElementById("username").value;
var password=document.getElementById("password").value;
var password1=document.getElementById("password1").value;
if(password===password1&&password!=null)
{
var url = "signupservlet?username=" + encodeURI(username)+"&password="+encodeURI(password);
if (window.XMLHttpRequest) {
req = new XMLHttpRequest( );
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("Get",url,true);

req.onreadystatechange = callbacksignstate( );
req.send(null);
}
else {alert("请输入正确的确认密码");}
}

function callbacksignstate( ) {
document.write(req.readyState+"/"+req.status);
if(req.readyState===4){
if(req.status===200){
alert("注册成功!");
window.location='Confirm.html';
}
}

}
然后是服务器端的servlet代码:
package SERVLET;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

public class signupservlet extends HttpServlet
{
@Override
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException, IOException
{
String username = req.getParameter("username");
String password = req.getParameter("password");
if (username!=null&&password !=null){

inputdata(username,password);
res.setContentType("text/html");
res.setHeader("Cache-Control", "no-cache");
res.getWriter( ).write("T"); }
else {
res.setContentType("text/html");
res.setHeader("Cache-Control", "no-cache");
res.getWriter( ).write("F");
}

}
public void inputdata(String username,String password) {

try {
Statement select =DatabaseConnector.getConnection().createStatement( );
int work = select.executeUpdate("insert into USERS values('" + username + "','"+password+"');");

}
catch (SQLException e) {
e.printStackTrace( );
}

}

}
以上是整个过程的不能实现这个传输的代码部分,我这个项目文件里面,有另外的一个脚本和另外的servlet,他们自己是完全没问题的,但是就以上部分有问题,请各位大师帮忙看看,我也是刚刚开始学AJAX技术,真心求教!!!
展开
 我来答
宝贵还绝妙丶白桦081ca
2013-05-17 · 超过22用户采纳过TA的回答
知道答主
回答量:59
采纳率:100%
帮助的人:58.2万
展开全部
你在后台DEBUG一下,看看后台返回的值是什么,如果能正确执行到res.getWriter( ).write("T");或者res.getWriter( ).write("F");就说明后台代码没问题,然后在前端代码alert()一下从后台传过去的值能不能在前端获取就行了。
更多追问追答
追问
servlet我单独测试过,能正确返回值,数据库也能正确写入数据,不过就是状态值得不到!
追答
其实你可以选用jquery的ajax方式进行异步提交数据,你上面的方式是AJAX原始的方式,我基本上没怎么用,以前用过一次也是获取不到状态值,后来我直接在后台给它手工写了个状态让它返回。
清风之无痕岁月05
2013-05-17 · TA获得超过236个赞
知道小有建树答主
回答量:487
采纳率:77%
帮助的人:139万
展开全部
jsp我们不太熟悉,不过可以的话你分步测试,看看那地方问题,第一前台测试你是否能获取到页面值,第二用ajax访问并提交,获取,后台随便放回一个值,最后,后台单独返回值显示,
追问
后台的代码单独允许可以返回值,但是前台得不到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式