实现Mashup的基本技术手段: cross domain ajax

由于安全方面的原因, XmlHttpRequest只能用来向来源网站发送请求, XmlHttpRequest甚至不能向具有相同根的不同Url发送请求, 比如从来自 www.foo.com的网页上的, 你甚至不能象www.buz.foo.com 发送请求, 更不用说从www.foo.com 发送请求到www.boo.com 了. 这对于实现Web 2.0的一个基本特征, 即Mashup(即混合来自不同的网站的数据与服务), 来说, 是一个很大的限制.

为了克服这个限制, 人们做了很多努力. 其中最值得关注的是Google和Yahoo等是如何解决这一问题的. Google和Yahoo使用一种dynamic script, 请看有关资源:http://code.google.com/p/crosssafe/,

http://code.google.com/support/bin/answer.py?answer=70654, http://developer.yahoo.com/common/json.html.

在上述的资源里, 将该技术解释的很清楚, 我就不再重复.

除了上面一种途径, 还有一种途径, 利用iframe的一个特性, 就是, iframe的 domain 属性可以被改写, 改写成相同的domain后, 两个iframe中的script就可以互相访问了. 利用这一点可以实现www.foo.comwww.buz.foo.com 之间的异源ajax. 这个途径不同于前一途径, 它可以使用XmlHttpRequest, 而前面提到的Google在map api等中用的途径, 不能用XmlHttpRequest. 当然, 后一种只能用于同根的不同url之间, 这仍然是一个的限制.

cross domain ajax的有关资源:

http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

http://code.google.com/p/crosssafe/

http://code.google.com/support/bin/answer.py?answer=70654

http://docs.codehaus.org/display/MAP/Home/

http://ajaxpatterns.org/On-Demand_Javascript

http://programmableweb.com/

http://www.prototypejs.org/

http://developer.yahoo.com/common/json.html

http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html?page=1

http://fettig.net/weblog/2005/11/30/xmlhttprequest-subdomain-update/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值