45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样利用AJAX跨域读取RSS---?

怎么样利用AJAX跨域读取RSS---?

2016-08-27 16:41:10 来源:www.45fan.com 【

怎么样利用AJAX跨域读取RSS---?

在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. varhttp1=Server.CreateObject("Microsoft.XMLHTTP");
  4. varRSS_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. Functionsend_request(url)
  4. SetRetrieval=CreateObject("Microsoft.XMLHTTP")
  5. WithRetrieval
  6. .Open"Get",url,False,"",""
  7. .Send
  8. send_request=.ResponseBody
  9. EndWith
  10. Response.ContentType="text/xml"
  11. SetRetrieval=Nothing
  12. EndFunction
  13.  
  14. url=Request("RSS_URL")
  15. Response.BinaryWritesend_request(url)
  16. Response.Flush
  17. %>

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

 

本文地址:http://www.45fan.com/a/question/68436.html
Tags: ajax 跨域 读取
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部