经过上一次的AJAX尝试,我想把AJAX实际应用于密码的修改界面,它要先输入工号,我就希望它跳出对应的姓名。
但问题随之而来,上一次,我是使用单独建立一个ASP文件,但这一次我不希望文件太多,少一些文件,这样看得更清爽一些。所以想把查询姓名的代码也放在更改密码的界面中。这里我遇到了两个问题:如何改为POST方式,因为POST方式可以让我不必写那么多参数;如何让ASPX只传回指定内容,而不是把<html><head>...全部传回来。
第一个问题,网络上有现成代码,原来代码如下:
function TxtS61BH_keydown()
{
var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
xhttp.open("GET", "password.aspx?S61BH="+document.all["TxtS61BH"].value, false);
xhttp.send();
eval(xhttp.responseText);
}
现只要改为如下即可:
function TxtS61BH_keydown()
{
var para="S61BH="+document.all["TxtS61BH"].value;
var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
xhttp.open("POST", "password.aspx", false);
xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
xhttp.send(para);
eval(xhttp.responseText);
}
主要就是,增加一个变量para,然后send时,括号内加上para。现在看来,POST方式也是要写参数,没有实现我之前想象的内容。
我测试时发现即使xhttp.setRequestHeader不写,也可以实现POST的方式。
第二个问题,网络上说得比较少,大部分都是说“新建一个空白的页面……”这种方法,但有发现使用Response.End即可。而我试一下没有效果。折腾了半天,发现我在试上一部时,把xhttp.setRequestHeader注释了,如果有写上这句话,Response.End就OK了。气!
所以,要让ASPX回传一些内容,可以使用Response.End来截止“<HTML><HEAD>...”这些内容的回传。
另外,我再试GET的方式,也是需要xhttp.setRequestHeader的,否则也是传回“<HTML><HEAD>...”。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用