AJAX不能提交数据。

小伙真帅 2009-04-17 05:37:32
做了一个后台登录的页面,用到AJAX。

代码如下:
function chklog(){
var uname=document.getElementById("un").value;
var upass=document.getElementById("up").value;

document.getElementById("needlog").style.display="none";
document.getElementById("processing").style.display="";
CreateXMLHttp();
var url="chklog.asp";
var str="username="+uname+"&userpass="+upass;
xmlhttp.open("post",url,true);
xmlhttp.onreadystatechange=callback;
xmlhttp.send(str);

}

这里可以取到用户名,密码信息,但是就是不会提交到chklog.asp页面,然后它还是调用了callback函数。。

为什么???
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack420124 2009-04-23
  • 打赏
  • 举报
回复
楼主的问题是
ajax 的缓冲在作怪啊

function chklog(){
var uname=document.getElementById("un").value;
var upass=document.getElementById("up").value;

document.getElementById("needlog").style.display="none";
document.getElementById("processing").style.display="";
CreateXMLHttp();
var url="chklog.asp?t="+ new Date().getTime();
var str="username="+uname+"&userpass="+upass;
xmlhttp.open("post",url,true);
xmlhttp.onreadystatechange=callback;
xmlhttp.send(str);

}
lam999 2009-04-22
  • 打赏
  • 举报
回复
JQuery.js等框架就有现成的东西,干啥还要自己写那么多东西呢
function chklog(){
var uname=document.getElementById("un").value;
var upass=document.getElementById("up").value;
$.post("chklog.asp",{username:uname,userpass:upass},function(data){
if(data == "登陆成功")
//do something
else
//Do other things
});
}

(data是chklog.asp返回的结果)
林g 2009-04-20
  • 打赏
  • 举报
回复
支持楼上!
win720520 2009-04-20
  • 打赏
  • 举报
回复
URL里面只有一个地址,没有参数,如何叫他去提交数据
var str="username="+uname+"&userpass="+upass;
url="chklog.asp"+str;

mqfwjp 2009-04-20
  • 打赏
  • 举报
回复
利用ajax取吧,添加一个页面,提交到这个页面上处理,取出值后返回不就OK了
代码如下:
var xmlhttp;
function createHTTP()
{
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
}

function startHTTP()
{
createHTTP();
xmlhttp.onreadystatechange=statechange;
xmlhttp.open("POST","clientajax.aspx?CLIENT_NAME="+encodeURI(document.getElementById("txtclientmc").value),true);
xmlhttp.Send();
}

function statechange()
{
if(xmlhttp.readystate==4)
{
if(xmlhttp.status==200)
{
document.getElementById("txtccode").innerText=xmlhttp.responseText;
}
}
}
这是父页面提交的代码
在子页面用Response.Write(strReqponseText);返回就可以了
你用这个方法试试,我都是这么调用的
silenceace 2009-04-20
  • 打赏
  • 举报
回复
人家是post传送
lennydou 2009-04-19
  • 打赏
  • 举报
回复
你的str没有加到url后面,所以后台不能获得数据
lzj34 2009-04-18
  • 打赏
  • 举报
回复
URL里面只有一个地址,没有参数,如何叫他去提交数据
url="chklog.asp"+str;
蓝海D鱼 2009-04-17
  • 打赏
  • 举报
回复
关注
xmlhttp:open方法
创建一个新的http请求,并指定此请求的方法、URL以及验证信息
语法
oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
参数
bstrMethod
http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。
/*****
POST:用"POST"方式发送数据,可以大到4MB
GET:用"GET"方式发送数据,只能256KB
如果请求带有参数的化实用POST方式,POST方式将参数放置在页面的隐藏控件内
没有参数使用GET方式
对于请求的页面在中途可能发生更改的,也最好用POST方式
用GET方式可能会拿不到最新的信息
*****/
bstrUrl
请求的URL地址,可以为绝对地址也可以为相对地址。
varAsync[可选]
布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。
bstrUser[可选]
如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。
bstrPassword[可选]
验证信息中的密码部分,如果用户名为空,则此值将被忽略。

Example
下面的例子演示从服务器请求book.xml,并显示其中的book字段。
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET","http://localhost/books.xml", false); 没有参数且不会发生改变的用GET,否则用POST
xmlhttp.send();
var book = xmlhttp.responseXML.selectSingleNode("//book[@id=''''bk101'''']");
alert(book.xml);

52,797

社区成员

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

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