【收藏】AJAX 跨域访问 — 方法大全

本文介绍了两种跨域访问的解决办法:一种是通过Web代理的方式,适用于A网站与B网站紧密协作的情况;另一种是on-Demand方式,适用于聚合类门户,通过动态生成<script>标签实现跨域数据获取。

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>




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值