利用AJAX跨域读取RSS---使用AJAX代理解决AJAX跨域问题

 在IE中,每次读取RSS的时候都会有下图所示的提示;而在Firefox中则根本不会读取RSS。

    这是因为基于安全的考虑,AJAX只能访问本域下的资源,而不能跨域访问。也就是说,domain1.com站点中的AJAX只能访问domain1.com站点下的资源,而不能跨域访问domain2.com站点中的资源.这就是AJAX跨域问题.

    解决AJAX跨域问题有几种方法,这里我们只讨论最常用的一种方法---使用AJAX代理解决AJAX跨域问题. 即在domain1.com站点中使用动态网页(ASP,PHP,JSP等)作为代理页面读取domain2.com站点中的资源, 然后在domain1.com站点中使用AJAX读取本域下的代理页面. 我们以ASP为例来介绍AJAX代理:

 


 

    AJAX代理---ASP(JAVAScript)

    AJAXProxy.asp

  1. <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
  2. <%
  3. var http1=Server.CreateObject("Microsoft.XMLHTTP");
  4. var RSS_URL=Request("RSS_URL");
  5. http1.Open("GET",RSS_URL,false);
  6. Response.ContentType="text/xml";
  7. http1.send(null);
  8. if(http1.readyState==4){
  9.   Response.BinaryWrite(http1.Responsebody);
  10. }
  11. http1=null;
  12. %>

 

    AJAX代理---ASP(VBScript)

    AJAXProxy.asp

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  2. <%
  3. Function send_request(url)
  4. Set Retrieval = CreateObject("Microsoft.XMLHTTP")
  5. With Retrieval
  6.   .Open "Get"urlFalse""""
  7.   .Send
  8.   send_request = .ResponseBody
  9. End With
  10. Response.ContentType="text/xml"
  11. Set Retrieval = Nothing
  12. End Function
  13.  
  14. url=Request("RSS_URL")
  15. Response.BinaryWrite send_request(url)
  16. Response.Flush
  17. %>

http://developer.yahoo.com/javascript/howto-proxy.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值