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";
抛砖引玉,给你个思路