简单应用prototype的Ajax代理示例

本文通过一个具体的示例展示了如何使用Ajax进行跨域数据请求。包括html页面设置、使用Prototype库发起请求、ASP代理文件及目标XML文件解析等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习Ajax有一两星期了,却一直没动手做些东西,今天练习了一下,感觉了一下效果,嘿嘿,不错!!!!!!!!

(1)html文件:

<html>
<head>
<title>ReadRSS</title>
<script src="js/prototype.js"></script>
<script>
function send_Request(url)
{
    var request_url = 'AJAXProxy.asp';                                    //用于代理的页面,调用发送时指定该页面。
    var request_pars = 'RSS_URL=' + url;
    alert(request_pars);
    var myAjax = new Ajax.Request(
        request_url,
        {
            method:'get',
            parameters:request_pars,
            asynchronous:true,       //true---异步;false---同步.默认为true
            onComplete:processRequest
        }   
    );
}
 
function processRequest(XML_Http_Request){
    var results = XML_Http_Request.responseXML;
    var item = null;
    var userName = null;

    var items = results.getElementsByTagName("userName");
    for(var i = 0; i < items.length; i++) {
        item = items[i];
        userName=item.firstChild.nodeValue;
       
        var cell = document.createElement("div");
         cell.innerHTML = "<li>"+userName+"</li><br>";
        //document.getElementById("result").appendChild(cell);
        $("result").appendChild(cell);
    }
}
 
var myGlobalHandlers = {
    onCreate:function (){
        Element.show('systemWorking');
    },
    onComplete:function (){
        if(Ajax.activeRequestCount == 0){
            Element.hide('systemWorking');
        }
    }
};
Ajax.Responders.register(myGlobalHandlers);
</script>
</head>
<body onLoad="javascript:send_Request('AJAXProxy.asp?_URL=http://localhost/jitdemo/pklist.xml');">
<div id='systemWorking'>Loading...</div>
<div id="result"></div>

<DIV id="div1"><a href="#" onclick="new Element.toggle('div2')">交替隐藏域</a></DIV>
<DIV id="div2">Hello!</DIV>
</body>
</html> 

(2)AJAXProxy.asp本来想用jsp,但懒得启动tomcat,就简单用asp试试.

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
var http1=Server.CreateObject("Microsoft.XMLHTTP");
var _URL=Request("_url");
http1.Open("GET",_URL,false);
Response.ContentType="text/xml";
http1.send(null);
if(http1.readyState==4){
  Response.BinaryWrite(http1.Responsebody);
}
http1=null;
%>

(3)pklist.xml

<?xml version="1.0" encoding="GBK"?>
<pklist lastModi="2007-01-01">
  <cert index="1">
    <userName>EncryptCert</userName> 
    <SN>1c4791f174941cfd</SN> 
    <DN>EncryptCert</DN>
  </cert> 
  <cert index="2">
    <userName>李四6666</userName> 
    <SN>2c4791f174941cfd</SN> 
    <DN>李四6666</DN>
  </cert> 
  <cert index="3">
    <userName>五台山</userName> 
    <SN>521777e2bd9f3098</SN> 
    <DN>企业用户</DN>
  </cert>
</pklist>

  前面两个页面在同一个域,后面的xml可以在其它域,以实现跨域访问。

  更换xml文件时,在修改文件(1)里的processRequest里的结点名称TagName,对应新xml的结构。

OK!都来试试吧。

下次将写一些关于DWR的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值