怎么样利用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
- <%@LANGUAGE="JAVASCRIPT"CODEPAGE="936"%>
- <%
- varhttp1=Server.CreateObject("Microsoft.XMLHTTP");
- varRSS_URL=Request("RSS_URL");
- http1.Open("GET",RSS_URL,false);
- Response.ContentType="text/xml";
- http1.send(null);
- if(http1.readyState==4){
- Response.BinaryWrite(http1.Responsebody);
- }
- http1=null;
- %>
AJAX代理---ASP(VBScript)
AJAXProxy.asp
- <%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>
- <%
- Functionsend_request(url)
- SetRetrieval=CreateObject("Microsoft.XMLHTTP")
- WithRetrieval
- .Open"Get",url,False,"",""
- .Send
- send_request=.ResponseBody
- EndWith
- Response.ContentType="text/xml"
- SetRetrieval=Nothing
- EndFunction
- url=Request("RSS_URL")
- Response.BinaryWritesend_request(url)
- Response.Flush
- %>
http://developer.yahoo.com/javascript/howto-proxy.html
本文地址:http://www.45fan.com/a/question/68436.html