asp如何传值给Ajax?

梦醒实分1 .net程序员  2009-08-04 06:38:01
这两天在做一个弹出式登陆框登录,结合Ajax登录的那种,现在有一问题让我很郁闷,就是当asp传值给Ajax的时候,结果Ajax没接收到所传的值,倒是接收到了这个页面。下面附上一些代码,还请论坛里的高手帮小弟看一下代码。

script language="javascript">
var Ajax;
function createAjax()
{
if(window.XMLHttpRequest)
{
Ajax=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
Ajax=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function chkuser()
{
createAjax();
if(document.getElementById("username").value=="" || document.getElementById("pwd").value=="")
{
document.getElementById("msg").innerText="用户名和密码不能为空";
}
else
{
var username=document.all.username.value;
var pwd=document.all.pwd.value;
data="username="+escape(username)+"&pwd="+escape(pwd);
postdata("default.asp?act=chk",data);

}
}
function postdata(url,data)
{
createAjax();
Ajax.open("POST",url,true);
Ajax.onreadystatechange=checkuser;
Ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Ajax.send(data);

}
function checkuser()
{
if(Ajax.readyState==4)
{
alert(Ajax.responseText);
}

}
</script>


asp代码

<form id="flogn" action="default.asp" method="post">
<table width="100%" height="100%" border="1" cellpadding="0" cellspacing="0">
<tr><td colspan="2" align="center" height="40">会员登录</td></tr>
<tr><td colspan="2" align="center"><span id="msg" style="color:#FF0000;"></span></td></tr>
<tr height="30"><td align="right">用户名:</td><td align="left"><input type="text" id="username" name="username" class="input"/></td></tr>
<tr height="30"><td align="right">密码:</td><td align="left"><input type="password" id="pwd" name="pwd" class="input"/></td></tr>
<tr height="30"><td></td><td align="left"><input type="submit" value="登陆" onclick="chkuser()"/><input type="reset"/></td></tr>
</table>
</form>
...全文
315 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
梦醒实分1 2009-08-05
不好意思啊,大意了,写漏了一点,我是提交本页面的
if request.Form("act")="chk" and request.Form("username")<>"" and request.Form("pwd")<>"" then
call chkusers()
response.End()
end if
function chkusers()
username=cstr(request.Form("username"))
pwd=cstr(request.Form("pwd"))
set res1=server.CreateObject("adodb.recordset")
strsql1="select * from UserInfo where UserName='"+username+"'and Pwd='"+pwd+"'"
res1.open strsql1,conn,1,3
if not res1.eof then
response.Write "1"
else
response.Write "0"
end if
end function
回复
梦醒实分1 2009-08-05
谢谢各位啊,我的问题解决了
回复
梦醒实分1 2009-08-05
<script language="javascript">改成 <script defer>还一样的效果,弹出来还是整个页面信息
回复
number123456 2009-08-05
你不要把AJAX和ASP的关系搞混了,
不是ASP传值给AJAX,而且,AJAX是一种方法,可能解释为JavaScript通过一段程序访问一个ASP(PHP,JSP任意一种语言的页面)后,获得该页面的内容,过程就好比你直接在浏览器上输入地址,回车一样的效果,不同的是,AJAX方法获得了页面内容后,你可以进一步去处理以后的事情,你所问的值可以被视为访问了这个页面后所获得的内容是什么,然后再由JavaScript来处理后绪工作,当然,这个被访问的页面你可以写很复杂的程序来处理任何事情,
回复
lwife 2009-08-05
提交本页面的话,Ajax不支持<script language="javascript">这种写法吧,改成<script defer>
回复
shenzhenNBA 2009-08-05
直接

<%
response.write "你的结果"
%>

AJAX接收函数处理结果
回复
ilxl520 2009-08-05
你理解错了。。。。
ASP的AJAX里面,ASP页面是做处理并返回数据的页面
你这个案例应该是把登陆的用户名和密码提交到处理页面,如login_check.asp这个页面,这个页面返回true或者是false或者是一些其他的信息...

ajax返回的就是url页面里的所有页面数据的
回复
凡夫与俗子 2009-08-04
default.asp页面的代码没贴出来。
回复
凡夫与俗子 2009-08-04
...哪有asp代码?ajax获取asp值必须建个asp写的“服务器”页面
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告