cgi+perl+ajax初探
本来任务要求的是用perl实现cgi脚本即可。但是普通的方法都会刷新页面。我想要的结果是不刷新页面,在原页面上进行交互。即通过cgi返回的信息可以作为原网页的部分内容。所以这需要用到ajax。
很遗憾,在网上没有多少相关的资料。而且手边的教科书上没有说到perl和ajax的结合运用。自己胡乱摸索了一下,已经成功实现不离开页面将信息传给服务器端的cgi脚本,并将服务器端传回来的反馈信息得到,通过javascript动态改变页面内容。但是一个头疼的问题是,通过innerHTML改变div的内容后,页面会自动刷新。使得反馈信息在原页面上一闪而过。没有解决。懒得弄得了。暂时吧源码贴在这。
<script type="text/javascript"> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } var url=""; var name=document.getElementsByName("name")[0].value; var age=document.getElementsByName("age")[0].value; var gender=document.getElementsByName("gender")[0].value; var email=document.getElementsByName("email")[0].value; url="?name="+name+"&age="+age+"&gender="+gender+"&email="+email; alert(url); xmlhttp.open("GET","http://www.cnblogs.com/cgi-bin/infoQuesAdd1.pl"+url,false); xmlhttp.send(null); //document.getElementById("displayboard").innerHTML=xmlhttp.responseText; alert(xmlhttp.responseText); } </script>
通过ajax对象将获得的信息通过GET方法传到服务器端。服务器端通过perl脚本的param函数分析参数并作相应处理,且做出反馈。反馈信息由xmlhttp.responseText得到。