Ajax向servlet发送请求,接受不到数据
1.
html中<input type="button" id="login" value="登录" onclick="checkLogin();">
js中:
var xmlHttp = false;
function createXMLHttpRequest(){
try {// Chrome, Firefox, Opera, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {// Internet Explorer
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {// Internet Explorer
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("your browser not support ajax!");
}
}
}
return xmlHttp;
}
function checkLogin(){
console.log("ok");
//1、调用创建XMLHttpRequest对象方法
createXMLHttpRequest();
//2、设置回调函数
xmlHttp.onreadystatechange = callback;
//3、向servlet/check发送请求
xmlHttp.open("POST","./servlet/login.action",true);
//4、向服务器端发送请求
xmlHttp.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");
var nameStr = document.getElementById('name').value;
var pswStr = document.getElementById('psw').value;
var para = "t="+Math.random()+"&"+"name="+nameStr +"&"+ "psw="+pswStr;
console.log(para);
xmlHttp.send(para);
}
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var str = xmlHttp.responseText;
console.log(str);
if(str == 'ok'){ //登录成功
alert("登录成功");
}else{
alert("登录失败");
}
}
}
}
后台servlet中:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
System.out.println("enter");
String name = request.getParameter("name");
String psw = request.getParameter("psw");
System.out.println("name:"+name);
System.out.println("psw:"+psw);
2、问题:
但我运行的时候,输入用户和密码 sa,sa 时候,
浏览器中调试,数据js中都获取到了的,但是network中没有请求记录,但是servet中进入方法了,参数却一直获取不到,这个怎么才对呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.跟着我操作. 打开控制台.点击Network.
2.然后点击你的登录按钮.次数Network会产生新的一条;
3.点击这一条.找到header下面的Request URL和form date.看看里面是否正常,如果不正常.JavaScript的锅,如果正常java的锅.