请求jsp与请求普通文件不通过的地方,请求jsp可能会传参,比如搜索,用户名,页码这些
html部分: 实参:this.value,input中的值
js部分:function showHint(str){.....} str用于接收实参
xmlhttp.open("GET","/ajax/gethint.asp?q="+str,true); asp中的变量q 接收请求asp文件传送的值:this.vue
此处为后端服务器脚本,简单能看懂即可:
response.expires=-1
dim a(30)
'用名字来填充数组
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"
a(11)="Kitty"
a(12)="Linda"
a(13)="Nina"
a(14)="Ophelia"
a(15)="Petunia"
a(16)="Amanda"
a(17)="Raquel"
a(18)="Cindy"
a(19)="Doris"
a(20)="Eve"
a(21)="Evita"
a(22)="Sunniva"
a(23)="Tove"
a(24)="Unni"
a(25)="Violet"
a(26)="Liza"
a(27)="Elizabeth"
a(28)="Ellen"
a(29)="Wenche"
a(30)="Vicky"
'获得来自 URL 的 q 参数
q=ucase(request.querystring("q"))
'如果 q 大于 0,则查找数组中的所有提示
if len(q)>0 then
hint=""
for i=1 to 30
if q=ucase(mid(a(i),1,len(q))) then
if hint="" then
hint=a(i)
else
hint=hint & " , " & a(i)
end if
end if
next
end if
'如果未找到提示,则输出 "no suggestion"
'否则输出正确的值
if hint="" then
response.write("no suggestion")
else
response.write(hint)
end if
%>
***************this over**************8
AJAX和数据库的动态通信: 主要是由后端来完成,设置一个接收参数又前端传入 dom编写同上
ajax服务器页面编写如下:
response.expires=-1
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & "'" & request.querystring("q") & "'"
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql,conn
response.write("
do until rs.EOF
for each x in rs.Fields
response.write("
" & x.name & "")response.write("
" & x.value & "")next
rs.MoveNext
loop
response.write("
")%>
AJAX被用来与XML的交互式通信
当服务器响应就绪时,会构建一个 HTML 表格,从 XML 文件中提取节点(元素),最后使用已经填充了 XML 数据的 HTML 表格来更新 txtCDInfo 占位符:
function loadXMLDoc(url)
{
var xmlhttp;
var txt,x,xx,i;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
txt="
Title | Artist |
---|
x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");
for (i=0;i
{
txt=txt + "
";xx=x[i].getElementsByTagName("TITLE");
{
try
{
txt=txt + "
" + xx[0].firstChild.nodeValue + "";}
catch (er)
{
txt=txt + "
";}
}
xx=x[i].getElementsByTagName("ARTIST");
{
try
{
txt=txt + "
" + xx[0].firstChild.nodeValue + "";}
catch (er)
{
txt=txt + "
";}
}
txt=txt + "
";}
txt=txt + "
";document.getElementById('txtCDInfo').innerHTML=txt;
}
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
获得 CD 信息
over:xml文件