日期:2014-05-19  浏览次数:20711 次

SSH2中求一段Jquery实现Ajax的正确代码。
是这样的,因为在使用jquery的时候使用

function validateUser(){
  var userName = $("#username").val();
  $.ajax({
  type:"post",
  url:"UserAction",
  data:{"userName":userName},
  success:function(bool){
  if(bool)
  alert('用户已经存在');
  else{
  alert('用户名可以使用');
  }
  }
  });
}

在jsp页面中有一个文本框,id为username,这样做有错么。

------解决方案--------------------
如果是返回html类型的需要写上:
response.setContentType("text/html;charset=utf-8");
如果是返回的json类型需要写上:
resp.setContentType("application/json;charset=utf-8");

为了防止浏览器缓存带来的麻烦你可以设置不缓存或者在你的url请求后面加上个随机数
1,服务器端设置返回头信息:
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");

就response.getWriter().print(要返回的内容);

------解决方案--------------------
不如改成get方式从后台取username来验证用户是否已存在。
 function validateUser(){
  var username = $("#username").attr("value");
  var paras="?username="+ username;

$.ajaxSetup({ cache: false });
var url="UserAction" + paras;
$.getJSON(url,null,function call(data){
promptMessage(data);
$.ajaxSetup({ cache: true });
});
 }

 function promptMessage(data){

var counter = data.num; //找到的username数
if(counter!=0){
$("#username_msg").removeClass("prompt")
$("#username_msg").addClass("warningPrompt");
$('#username').val('');

$('#username').focus();

}else {
$("#username_msg").removeClass("warningPrompt")
$("#username_msg").addClass("prompt");
}

$("#username_msg").html(data.msg);

}


UserAction 里返回 (data.msg data.num json 格式)
json 可以用gson或 json-lib 来生成

如果username exists, msg="username not available"
otherwise msg="Congratulation! Username available";

抛砖引玉,给你个思路