先学习一下xmlHttp,这个是Ajax一个重要对象,放在Javascript中于服务器通讯。
看了很多概念,先从简单的找手,写个Hello World程序。
1.服务器
用delphi画了个form,放了个HttpServer控件,ip地址为192.168.0.209,port使用5678,编写代码如下
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentText:=formatdatetime('Hello World');
end;
然后开始写个ASP
写一个表格用来加内容
<table id=tb1 border="1"></table>
加段JavaScript来向server发http请求并得到结果
function PostAppServer(){
var xmlHttp;
var row1;
var cell1;
var cell2
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("POST","http://192.168.0.209:5678",false);
xmlHttp.send();
if (tCount==0) {
row1 = tb1.insertRow()
cell1=row1.insertCell();
cell2=row1.insertCell();
cell1.innerText="序号";
cell2.innerText="返回结果";
}
tCount = tCount + 1;
row1 = tb1.insertRow()
cell1=row1.insertCell();
cell2=row1.insertCell();
cell1.innerText=tCount;
cell2.innerText=xmlHttp.responseText;
}
试了一下,果然效果不错,浏览器在没有刷新页面得情况下得到了http服务器返回内容。
在换了一个机器运行HttpServer之后发现了一个问题,ie报无权限,在网上查了一下发现客户端post请求必须是一个ip地址,任何跨机器的请求都被认为是不安全的,这样岂不是很不方便,web和应用可能被部署在不同主机上,怎么解决这个问题呢?设置ie的网站安全级别可以解决该问题,但是带来一个发布的问题,还可以通过设置proxy来绕一下?
以上代码还只是AJ,XML还没有使用,有点晕,这些问题留到明天继续研究