既然我们有了zul_http
,为什么我们不用它来做ajax
的测试呢?
{$mode objfpc}
uses zul_http;
function display(req:http_message_C):http_message_S;
var
i:longint;
begin
writeln('Method:',req.method);
writeln('Url:',req.url);
writeln('Agreement:',req.agreement);
writeln('Opt:');
for i:=0 to length(req.opt)-1 do
writeln(' key=',req.opt[i].key,'value=',req.opt[i].value);
writeln('data=',req.data);
writeln('ok');
display.agreement:='HTTP/1.1';
display.status_number:=200;
display.status:='OK';
setlength(display.opt,1);
display.opt[0].key:='Content-Type';
display.opt[0].value:='';
display.data:='';
if req.url='/' then
begin
display.opt[0].value:='text/html';
display.data:=
'<html>'+#13#10+
'<head>'+#13#10+
'<meta charset="utf-8">'+#13#10+
'<script>'+#13#10+
'function loadXMLDoc(){'+#13#10+
'var xmlhttp;'+#13#10+
'if(window.XMLHttpRequest){'+#13#10+
'xmlhttp=new XMLHttpRequest();'+#13#10+
'}else{'+#13#10+
'xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");'+#13#10+
'}'+#13#10+
'xmlhttp.onreadystatechange=function(){'+#13#10+
'if (xmlhttp.readyState==4 && xmlhttp.status==200){'+#13#10+
'document.getElementById("myDiv").innerHTML=xmlhttp.responseText;'+#13#10+
'}'+#13#10+
'}'+#13#10+
'xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);'+#13#10+
'xmlhttp.send();'+#13#10+
'}'+#13#10+
'</script>'+#13#10+
'</head>'+#13#10+
'<body>'+#13#10+
'<div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>'+#13#10+
'<button type="button" onclick="loadXMLDoc()">修改内容</button>'+#13#10+
'</body>'+#13#10+
'</html>'+#13#10;
end;
if req.url='/try/ajax/ajax_info.txt' then
begin
display.opt[0].value:='text/plain';
display.data:='What the fuck?';
end;
end;
begin
resp:=@display;
port:=8000;
readln;
start;
end.
既然是终极之战,那这段代码你们就自己体悟吧!
到此,http
协议告一段落