实现Mashup的基本技术手段: cross domain ajax
2008-09-17 22:19
302 查看
由于安全方面的原因, XmlHttpRequest只能用来向来源网站发送请求, XmlHttpRequest甚至不能向具有相同根的不同Url发送请求, 比如从来自 http://www.foo.com/的网页上的, 你甚至不能象http://www.buz.foo.com/ 发送请求, 更不用说从http://www.foo.com/ 发送请求到http://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就可以互相访问了. 利用这一点可以实现http://www.foo.com/与http://www.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/
为了克服这个限制, 人们做了很多努力. 其中最值得关注的是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就可以互相访问了. 利用这一点可以实现http://www.foo.com/与http://www.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/
相关文章推荐
- 实现Mashup的基本技术手段: cross domain ajax
- js:浏览器跨域ajax变通实现 -- flash + js + crossdomain.xml
- 完成 ajax.net 的cross domain ajax功能实现
- 完成 ajax.net 的cross domain ajax功能实现
- 用 jsp 写的 ajax 技术实现省市县等 n 级联动
- 应用Ajax技术实现无刷新的级联下拉列表
- 用ajax技术读取数据库内容实现二级联动下拉选择菜单
- 用Ajax技术让IE Web Control Tree View实现大数据量读取
- Acticle 9:javascript技术--ajax基本知识
- 基于Ajax技术实现考试倒计时并自动提交试卷
- 使用AJAX技术实现“动态页面静态化”
- Ajax基本案例详解之$.post的实现
- 基于DWR和GI技术实现的AJAX RIA例子----Xignite
- 使用ajax技术实现txt弹出在页面上的方法
- 运用 Ajax技术 实现一个局部刷新显示的小例子
- 利用AJAX技术实现网页无刷新进度条显示
- Asp.net用ajax技术实现无刷新分页
- 利用AJAX技术实现网页无刷新进度条显示
- Ajax技术三种实现方式之asp.net2.0 callback篇 (四)
- Ajax技术验证用户名是否可用,简单实现