当前位置: 代码迷 >> Java Web开发 >> 使用jquery的ajax和servlet交互的有关问题
??详细解决方案

使用jquery的ajax和servlet交互的有关问题

热度:2802???发布时间:2013-02-25 21:15:30.0
使用jquery的ajax和servlet交互的问题
前台ajax代码:
$.ajax({?
? type: "POST",?
? url:"/OnLineTest01/servlet/admin_account_updatePwd",?
? data:{original:$("#original").val(),freshF:$("#freshF").val(),freshS:$("#freshS").val()}, ?
? success: function(msg){
? alert(msg);
? }, ?
? error: function(){?
? alert("未知ag环亚在线注册|平台,请稍后再试!");?
? }?
? });?


后台servlet处理代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String updateResult = null;
PrintWriter out = response.getWriter();?
String original = request.getParameter("original");
String freshF = request.getParameter("freshF");
String freshS = request.getParameter("freshS");

//检测格式及正确性
if(original==null || !original.matches("\\w{5,}")||freshF==null ||
!freshF.matches("\\w{5,}")||freshS==null || !freshS.matches("\\w{5,}")) { //密码至少5位,由数字/字母/下划线组成
updateResult = "密码至少5位,由数字/字母/下划线组成!";
}else if(!freshF.equals(freshS)){
updateResult = "新密码两次输入不同!";
}

if(updateResult==null) {
MD5Code code = new MD5Code();
original = code.getMD5ofStr(original);//数据库中存储加密后的密文
HttpSession session = request.getSession();
Teacher t = (Teacher)session.getAttribute("teacher");
if(t==null) {
updateResult = "账号超时,请重新登录!";
}else {
if(!original.equals(t.getPassword())) {
updateResult = "原密码错误!";
}else {//校验结果正确,可以更新密码
String fresh = code.getMD5ofStr(freshF);//产生新的存储到数据库的密文
//存入数据库
TeacherServiceImp teacherService = new TeacherServiceImp();
boolean result = teacherService.updatePwd(fresh, t.getUserId());
if(result) {
//修改session中teacher对象密码信息
t.setPassword(fresh);
session.setAttribute("teacher", t);
updateResult = "密码更新成功!";
}else {
updateResult = "服务ag环亚在线注册|平台,密码更新失败!";
}
}
}
}
System.out.println("updateResult"+updateResult);
out.write(updateResult);
}

问题:这段代码每次都有执行,而且都会正确输出updateResult的值,但是在前台的ajax代码有时候能接收到服务端返回的值,有时候又不能,有时候把服务端的代码位置调整下又会有然后过段时间有没有了,请高手帮帮哈。

------解决方案--------------------------------------------------------
唯一可能存在问题的是,你没有在response中写关于 contentType 等信息。

Ajax偶然确实会接收不到数据,但是发生概率很低,而且主要是网络因素。

听你的说法,如果频度较高,就显得比较怪异了。考虑可以专门对这个接口做下压力测试做个检查。
??相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
?
  • 最近登录:Sat Oct 19 13:51:34 CST 2019
  • 最近登录:Sat Oct 19 13:51:34 CST 2019
  • 最近登录:Sat Oct 19 13:51:34 CST 2019
  • 最近登录:Sat Oct 19 13:51:34 CST 2019
  • 最近登录:Sat Oct 19 13:51:34 CST 2019