+ -
当前位置:首页 → 问答吧 → js ajax servlet 组合问题。

js ajax servlet 组合问题。

时间:2011-09-18

来源:互联网

js页面代码:
 function check_UserName(){
  var obj = document.getElementById("text_UserName");
  var req = new xmlRequst();
var responseText=callback;
xmlhttp.onreadystatechange = callback; switch (responseText) {
  case '0':
  ...........  
  case '1':
  ............ 
  case '2':
  ...........


xml函数:

  var xmlhttp;
  function xmlRequst(){
  var userName = document.getElementById("text_UserName").vaule;
  if(window.XMLHttpRequest){
  xmlhttp = new XMLHttpRequest();
  if(xmlhttp.overrideMimeType){
  xmlhttp.overrideMimeType("text/xml")
  }
  }else if(window.ActiveXObject){
  var activexName =["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
  for(var i=0;i<activexName.length;i++){
  try{
  xmlhttp = new ActiveXObject(activexName[i]);
  break;
  } catch(e){
  }
  }
  }
  if(!xmlhttp){
  alert("XMLHttpRequest对象创建失败!");
   
  }else{
  alert(xmlhttp);
  alert(xmlhttp.readyState);
  } 

  xmlhttp.onreadystatechange = callback;

  xmlhttp.open("GET","zhucecheck?name="+userName,true);

  xmlhttp.send(null);
  }

回调函数:
  var xmlhttp;
  function callback(){
  //var xmlhttp;
  alert(xmlhttp);
  alert(xmlhttp.readyState);
  if(xmlhttp.readyState==4){
  if(xmlhttp.status==200){
  var responseText = xmlhttp.responseText;
  alert ("dedao");
  }else
  {
 
  alert("出错了");
  }
  }
  return responseText;
  }


servlet代码:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
String old = request.getParameter("name");

System.out.print("规矩");
if(old == null || old.length() == 0) {
out.println("0");
} else {
 

}
String name = new String(old.getBytes("gb2312"),"UTF-8");
//传过去处理。
  checkuec cu=new checkuec();
  if(cu.checkuec(old)){
  out.println("1");
  System.out.println("对了");

  }else{
  System.out.println("错了");
  out.println("2");
  }

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


js与xml在同一个页面。我觉得是红色部分没写对,没有得到callback的字符串。因为,我测试的时候,servlet的system。out能输出提示。不知道对不对呢?求大家给点专业的解释啊!!!!

作者: wangxiaolin8852   发布时间: 2011-09-18

后台不要out.println
改为
response.getWriter().write('字符串');

作者: fanchuanzhidu   发布时间: 2011-09-18

引用 1 楼 fanchuanzhidu 的回复:
后台不要out.println
改为
response.getWriter().write('字符串');

还是不行啊?!!!我的xml alert(xmlhttp);alert(xmlhttp.readyState);出来后提示是 undefined(未定义)是什么意思啊??!!!

作者: wangxiaolin8852   发布时间: 2011-09-18

你的ajax封装的有问题 网上搜一个封装 或者用jquery的ajax吧 也不用封装 直接拿过来用

作者: fanchuanzhidu   发布时间: 2011-09-18

引用 3 楼 fanchuanzhidu 的回复:
你的ajax封装的有问题 网上搜一个封装 或者用jquery的ajax吧 也不用封装 直接拿过来用

求详解啊,哥哥?!!!
我本来是xml放在另一个页面的,但是我不知道它和那个js之间怎么连接起来,传值。所以我就写在一起,方便传值。但是似乎有问题的。求解。

作者: wangxiaolin8852   发布时间: 2011-09-18