小白求问!关于Spring和ajax交互的有关问题
小白求问!关于Spring和ajax交互的问题
<script>
var uname=document.getElementById('uname');
var span=document.getElementById('tip');
uname.onblur= function () {
var uValue=uname.value;
console.log(uValue);
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject('Microsoft.XMLHTTP')
}
xhr.onreadystatechange= function () {
if(xhr.readyState===4){
if(xhr.status===200){
console.log("成功接收到响应内容"+xhr.responseText);
doResult(xhr.responseText);
}else{
alert("接收服务器响应数据失败"+xhr.status);
}
}
function doResult(text){
if(text===1){
span.innerHTML='此用户名已经存在,请您从新输入';
span.style.color='red';
}else if(text===0){
span.innerHTML='恭喜您可以继续注册';
span.style.color='green';
}
}
xhr.open('post','registname.do','true');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('username='+value);
};
};
</script>
这是Spring中的方法
@RequestMapping("/registname.do")
public int registname(HttpServletRequest request){
String name = request.getParameter("username");
int status = userService.checkregist(name);
return status;
}
为什么不能映射到控制器中完成registname.do请求
------解决思路----------------------
建议使用jquery的POST请求来完成后台数据的访问。类似:
$.ajax({
type :“POST”,
url :“abc.do”,
data :{
model : “603p”// 后台的参数
},
success :function(data){
//成功之后的回调函数
},
error:function(data){
//失败之后的回调函数
}
});
这些代码都是在项目中提炼出来,真实可靠
------解决思路----------------------
你的地址不完整,当然不能访问到了
localhost:8080/工程名称/类上的路径(如没有则不要)/registname.do
<script>
var uname=document.getElementById('uname');
var span=document.getElementById('tip');
uname.onblur= function () {
var uValue=uname.value;
console.log(uValue);
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject('Microsoft.XMLHTTP')
}
xhr.onreadystatechange= function () {
if(xhr.readyState===4){
if(xhr.status===200){
console.log("成功接收到响应内容"+xhr.responseText);
doResult(xhr.responseText);
}else{
alert("接收服务器响应数据失败"+xhr.status);
}
}
function doResult(text){
if(text===1){
span.innerHTML='此用户名已经存在,请您从新输入';
span.style.color='red';
}else if(text===0){
span.innerHTML='恭喜您可以继续注册';
span.style.color='green';
}
}
xhr.open('post','registname.do','true');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('username='+value);
};
};
</script>
这是Spring中的方法
@RequestMapping("/registname.do")
public int registname(HttpServletRequest request){
String name = request.getParameter("username");
int status = userService.checkregist(name);
return status;
}
为什么不能映射到控制器中完成registname.do请求
------解决思路----------------------
建议使用jquery的POST请求来完成后台数据的访问。类似:
$.ajax({
type :“POST”,
url :“abc.do”,
data :{
model : “603p”// 后台的参数
},
success :function(data){
//成功之后的回调函数
},
error:function(data){
//失败之后的回调函数
}
});
这些代码都是在项目中提炼出来,真实可靠
------解决思路----------------------
你的地址不完整,当然不能访问到了
localhost:8080/工程名称/类上的路径(如没有则不要)/registname.do