ajax传数据post方式为什么变成get了?大神帮帮忙!

LodgeCoward 2016-03-15 04:23:46
自己写的ajax.js

var AjaxUtil={
creat:function(){
//1.创建XMLHttpRequest对象
var xmlReq=null;
if(window.XMLHttpRequest){//非IE下有效
xmlReq=new XMLHttpRequest();
}else{//IE下
try {
xmlReq=new ActiveXObject("Msxm12.XMLHTTP");//IE6之后的版本
} catch (e) {
xmlReq=new ActiveXObject("Microsoft.XMLHTTP");//IE6之前
}
}
return xmlReq;
},
ajax:function(_method,_url,_param,_handle){//Get还是Post,url,参数,回调函数
//1.创建XMLHttpRequest对象
var xmlReq=this.creat();
if(!xmlReq){
alert("您的浏览器不支持某些功能,请升级!");
}
//如果是get方式,参数要加在url后面
if(_method=='get' || _method=='GET' || _method=='Get'){
_url=_url+"?"+_param
}
//2.连接服务器(打开和服务器的连接)
xmlReq.open(_method, _url, true);
//3.发送(判断方式选择get或者post)
if(_method=='get' || _method=='GET' || _method=='Get'){
xmlReq.send();
}else if(_method=='post' || _method=='POST' || _method=='Post'){
xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
alert(_param);
xmlReq.send(_param);
}
//4.接收
xmlReq.onreadystatechange=function (){
if(xmlReq.readyState==4 && xmlReq.status==200){
_handle(xmlReq.responseText || xmlReq.responseXML);
}
}
},
get:function(_url,_param,_handle){
this.ajax("get",_url,_param,_handle);
},
post:function(_url,_param,_handle){
this.ajax("post",_url,_param,_handle);
}
}


JSP:

submit.onclick=function(){
var accountValue = account.value;
var passwordValue= password.value;
var param = "account=" + accountValue + "&password=" + passwordValue;
var tipInner=document.getElementById("accountTip").innerHTML;
if((accountValue!="")&&(passwordValue!="")){
AjaxUtil.post("/moxiang/login.do",param,handle2);
}else{
if(!(regaccount.test(account.value))){
accountTip.innerHTML = "*账号不能为空!";
}
if(!(regpassword.test(password.value))){
passwordTip.innerHTML = "*密码不能为空!";
}
}
}


红色的alert调试图片:

浏览器url截图:



post传参方式,自动变成了get方式,急求各位大神帮忙
...全文
2837 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2016-03-15
  • 打赏
  • 举报
回复
你那是form提交的。不是ajax提交的,你要return false去阻止form表单提交 还有,你这个代码: xmlReq=new ActiveXObject("Msxm12.XMLHTTP");//IE6之后的版本 应该为: xmlReq=new ActiveXObject("Msxml2.XMLHTTP");//IE6之后的版本 那是一个l不是1
slwsss 2016-03-15
  • 打赏
  • 举报
回复
submit.onclick=function(){ var accountValue = account.value; var passwordValue= password.value; var param = "account=" + accountValue + "&password=" + passwordValue; var tipInner=document.getElementById("accountTip").innerHTML; if((accountValue!="")&&(passwordValue!="")){ AjaxUtil.post("/moxiang/login.do",param,handle2); }else{ if(!(regaccount.test(account.value))){ accountTip.innerHTML = "*账号不能为空!"; } if(!(regpassword.test(password.value))){ passwordTip.innerHTML = "*密码不能为空!"; } } return false }
Go 旅城通票 2016-03-15
  • 打赏
  • 举报
回复
submit.onclick=function(){ var accountValue = account.value; var passwordValue= password.value; var param = "account=" + accountValue + "&password=" + passwordValue; var tipInner=document.getElementById("accountTip").innerHTML; if((accountValue!="")&&(passwordValue!="")){ AjaxUtil.post("/moxiang/login.do",param,handle2); }else{ if(!(regaccount.test(account.value))){ accountTip.innerHTML = "*账号不能为空!"; } if(!(regpassword.test(password.value))){ passwordTip.innerHTML = "*密码不能为空!"; } } return false;///要阻止表单提交,都没走ajax }
LodgeCoward 2016-03-15
  • 打赏
  • 举报
回复
问题找到了,jsp里不用form就好了,改成div,form表单点击提交,会自动提交!
LodgeCoward 2016-03-15
  • 打赏
  • 举报
回复
这些都改了,还是不行,提交的是走了ajax的,调试了 通过筛查,问题可能出在两个方面: 1.JSP拼接的参数是否有问题:
var param = "account=" + accountValue + "&password=" + passwordValue;
2.JSP之前调用了以此ajax,get方式做账号是否存在验证,第二次调用ajax,用post方式提交参数,问题就出在这次,是否是第一次get方式与第二次的post有什么冲突. 下面是JSP的js代码:

window.onload = function() {
				/*账号框和密码框*/
				var account = document.getElementById("account");
				var password=document.getElementById("password");
				var submit=document.getElementById("submit");
				/*提示标签*/
				var accountTip=document.getElementById("accountTip");
				var passwordTip=document.getElementById("passwordTip");
				var tip=document.getElementById("tip");
				/*非空验证正则表达式*/
				var regaccount=/\S/;
				var regpassword=/\S/;
				
				/*输入框聚焦后提示标签消失*/
				account.onfocus=function(){
					tip.innerHTML="";
					if(account.value==""){
						accountTip.innerHTML = "";
					}
				}
				password.onfocus=function(){
					passwordTip.innerHTML = "";
					tip.innerHTML="";
				}
				
				/*正则表达式+事件验证密码是否为空*/
				password.onblur=function(){
					if(!(regpassword.test(password.value))){
						passwordTip.innerHTML = "*密码不能为空!";
					}else{
						passwordTip.innerHTML = "";
					}
				}
				/*Ajax方法验证账号是否存在回调函数*/
				var handle1=function(data) {
					if (data == 'fail') {
						accountTip.innerHTML = "您输入的账号不存在!";
					}
				}
				account.onblur = function() {
					/*正则表达式+事件验证账号是否为空*/
					if(!(regaccount.test(account.value))){
						accountTip.innerHTML = "*账号不能为空!";
					}else{
						/*Ajax方法验证账号是否存在*/
						accountTip.innerHTML = "";
						var accountInner = account.value;
						var passwordInner = password.value;
						AjaxUtil.get("/moxiang/login.do","account="+accountInner,handle1);
					}
				}
				
				/*Ajax提交是否存在回调函数*/
				var handle2=function(data) {
					if (data == 'fail2') {
						tip.innerHTML = "您输入的账号或密码有误!";
					}
				}
				/*Ajax方法Post提交参数*/
				submit.onclick=function(){
					var accountValue = account.value;
					var passwordValue= password.value;
					var param = "account=" + encodeURIComponent(accountValue) + "&password=" + encodeURIComponent(passwordValue);
					alert(param=="account=root&password=123456");
					var tipInner=document.getElementById("accountTip").innerHTML;
					if((accountValue!="")&&(passwordValue!="")){
						AjaxUtil.post("/moxiang/login.do","account=root&password=123456",handle2);
					}else{
						if(!(regaccount.test(account.value))){
							accountTip.innerHTML = "*账号不能为空!";
						}
						if(!(regpassword.test(password.value))){
							passwordTip.innerHTML = "*密码不能为空!";
						}
						return false;
					}
				}
				
			}

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧