Case I. Web代理的方式 (on Server A)
即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web代理的支持,因此A网站与B网站之间必须是紧密协作的,且每次交互过程,A网站的服务器负担增加,且无法代用户保存session状态。
Case II. on-Demand方式 (on Server A)
MYMSN的门户就用的这种方式,不过 MYMSN中不涉及跨域访问问题。在页面内动态生成新的<script>,将其src属性指向别的网站的网址,这个网址返回的内容必须是合法的Javascript脚本,常用的是JSON消息。此方案存在的缺陷是, script的src属性完成该调用时采取的方式时get方式,如果请求时传递的字符串过大时,可能会无法正常运行。不过此方案非常适合聚合类门户使用。
</span></p><p>
</p><p><span style="font-family:宋体; font-size:12pt"><html><br/><head><br/><script language="javascript" type="text/javascript"><br/>function loadContent()<br/>{<br/>var s=document.createElement('SCRIPT');<br/>s.src='<a href="http://www.anotherdomain.com/TestCrossJS.aspx?f=setDivContent%27;"><span style="color:blue; text-decoration:underline">http://www.anotherdomain.com/TestCrossJS.aspx?f=setDivContent';</span></a><br/>document.body.appendChild(s);<br/>}
</span></p><p><span style="font-family:宋体; font-size:12pt">function setDivContent(v)<br/>{<br/>var dv = document.getElementById("dv");<br/>dv.innerHTML = v; <br/>}<br/></script>
本文介绍了两种跨域访问的解决办法:一种是通过Web代理的方式,适用于A网站与B网站紧密协作的情况;另一种是on-Demand方式,适用于聚合类门户,通过动态生成<script>标签实现跨域数据获取。
2902

被折叠的 条评论
为什么被折叠?



