goahead如何支持ajax?


goahead 3.1

网上的方法都是老版本的,websUrlHandlerDefine函数这个版本的就没找到

嵌入式 css Ajax

白萝卜真难吃 11 years, 8 months ago

转自 http://blog.csdn.net/seuge/article/de...

1.首先是一个前台页面:

<html>  
<head>  
<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");  
  }  
xmlhttp.onreadystatechange=function()  
  {  
  if (xmlhttp.readyState==4 && xmlhttp.status==200)  
    {  
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;  
    }  
  }  
xmlhttp.open("GET","/ajax/",true);  
xmlhttp.send();  
}  
</script>  
</head>  
<body>  

<div id="myDiv"><h2>需要刷新的局部内容</h2></div>  
<button type="button" onclick="loadXMLDoc()">通过 AJAX 实现局部刷新</button>  

</body>  
</html>

把改htm放入服务器中。

2.在服务器端实现XMLHttpRequest的请求应答。

为ajax请求专门创建一个handle

int websAjaxHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,   
char_t *url, char_t *path, char_t *query)  
{  
    websHeader(wp);  
    websWrite(wp, T("<body><h2>this is ajax test!</h2>\n"));  
    websFooter(wp);  
    websDone(wp, 200);  
    return 1;  
}

注册handle

websUrlHandlerDefine(T("/ajax"), NULL, 0, websAjaxHandler, 0);  
这样就实现了局部刷新。

xmlhttp.open("GET","/ajax/",true);  
xmlhttp.send();

这是后台数据请求,现在仅是示意,所以没有对ajax请求进行分类,以后可以进行细分比如

xmlhttp.open("GET","/ajax/time",true);

然后响应的在goahead端进行二次判断,作出响应的应答。

超级无敌奖门人 answered 9 years, 9 months ago

Your Answer