<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Behind GFW &#187; Ajax</title>
	<atom:link href="http://www.behindgfw.com/archives/tag/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://www.behindgfw.com/archives</link>
	<description>在墙后面写博客...</description>
	<lastBuildDate>Mon, 02 Nov 2009 03:46:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google AJAX Feed API 与 Cross Site AJAX</title>
		<link>http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html</link>
		<comments>http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html#comments</comments>
		<pubDate>Thu, 19 Apr 2007 14:51:00 +0000</pubDate>
		<dc:creator>zdpress</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://behindgfw.com/archives/2007/04/google-ajax-feed-api-%e4%b8%8e-cross-site-ajax.html</guid>
		<description><![CDATA[Google刚刚发布了Google AJAX Feed API ，文档和范例在这里。
【背景】流行的AJAX程序都大量使用了JavaScript和XMLHttpRequest，而XMLHttpRequest遵循同源策略，即通常所说的跨域问题。什么是同源策略：一般情形下，为安全起见，浏览器不允许你在客户端通过XMLHttpRequest访问别的域，默认你只能存取同域名、同一端口、同一协议下的资源。这给我们造成了麻烦，很明显，在不少情形下，获取别的网站的信息/服务是非常有用的。
【解决方案】通常解决方法有三种：

在同一域的服务器端建立一个代理，浏览器向该代理网址发送请求，然后该代理向其他域的网址发请求，在获取回复后，或作处理或按原样发回到浏览器。
使用按需(On-Demand) Javascript 脚本。在页面内动态生成新的，将其src属性指向别的网站的网址，这个网址返回的内容必须是合法的Javascript脚本，常用的是JSON消息。
使用IFRAME。在页面内嵌或动态生成指向别的网站的IFRAME，然后这2个网页间可以通过改变对方的anchor hash fragment来传输消息。

都是比较麻烦的。
后来，yahoo提供了Yahoo Pipes，一个可视化界面的feed聚合服务程序，业界评价挺高，当然还有其他几个mashups程序可供选择。但是Google AJAX Feed API可能是最适合developer使用的了。
【Google AJAX Feed API】 现在你只要书写几行JavaScript程序，不再需要建立复杂的服务器端代理，Google代劳了所有mashups开发。
【延伸阅读】关于 Cross Site AJAX：
1. Security Considerations: Dynamic HTML
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/sec_dhtml.asp 
2. About Cross-Frame Scripting and Security
    http://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/xframe_scripting_security.asp 
3. Cross-Domain Proxy
http://ajaxpatterns.org/Cross-Domain_Proxy
4. Cross Domain XMLHttpRequest using an IFrame Proxy
http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book75 
5. Back Button Support for Atlas UpdatePanels
http://www.nikhilk.net/BackButtonSupport.aspx 
6. Cross-document messaging hack
http://blog.monstuff.com/archives/000304.html
7. [...]]]></description>
			<content:encoded><![CDATA[<p>Google刚刚<a href="http://googleajaxsearchapi.blogspot.com/2007/04/announcing-google-ajax-feed-api.html">发布</a>了Google AJAX Feed API ，文档和范例在<a href="http://code.google.com/apis/ajaxfeeds/documentation/">这里</a>。</p>
<p>【背景】流行的AJAX程序都大量使用了JavaScript和XMLHttpRequest，而XMLHttpRequest遵循<a href="http://en.wikipedia.org/wiki/Same_origin_policy">同源策略</a>，即通常所说的跨域问题。什么是同源策略：一般情形下，为安全起见，浏览器不允许你在客户端通过XMLHttpRequest访问别的域，默认你只能存取同域名、同一端口、同一协议下的资源。这给我们造成了麻烦，很明显，在不少情形下，获取别的网站的信息/服务是非常有用的。</p>
<p>【解决方案】通常<a href="http://blog.joycode.com/saucer/archive/2006/10/03/84572.aspx">解决方法</a>有三种：</p>
<ol>
<li>在同一域的服务器端建立一个代理，浏览器向该代理网址发送请求<wbr></wbr>，然后该代理向其他域的网址发请求，在获取回复后<wbr></wbr>，或作处理或按原样发回到浏览器。</li>
<li>使用按需(On-Demand) Javascript 脚本。在页面内动态生成新的<script></script>，将其src属性指向<wbr></wbr>别的网站的网址，这个网址返回的内容必须是合法的Javascri<wbr></wbr>pt脚本，常用的是JSON消息。</li>
<li>使用IFRAME。在页面内嵌或动态生成指向别的网站的IFRAM<wbr></wbr>E，然后这2个网页间可以通过改变对方的anchor hash fragment来传输消息。</li>
</ol>
<p>都是比较麻烦的。<br />
后来，yahoo提供了<a href="http://pipes.yahoo.com/">Yahoo Pipes</a>，一个可视化界面的feed聚合服务程序，业界评价挺高，当然还有<a href="http://www.techcrunch.com/2007/03/02/5-ways-to-mix-rip-and-mash-your-data/">其他几个</a>mashups程序可供选择。但是Google AJAX Feed API可能是最适合developer使用的了。</p>
<p>【Google AJAX Feed API】 现在你只要书写几行JavaScript程序，不再需要建立复杂的服务器端代理，Google代劳了所有mashups开发。</p>
<p>【延伸阅读】关于 Cross Site AJAX：</p>
<p>1. Security Considerations: Dynamic HTML<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/sec_dhtml.asp" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://msdn.microsoft.com<wbr></wbr>/library/default.asp?url=<wbr></wbr>/workshop/author/dhtml/sec<wbr></wbr>_dhtml.asp </a></p>
<p>2. About Cross-Frame Scripting and Security<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/xframe_scripting_security.asp" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">    http://msdn.microsoft.com<wbr></wbr>/library/default.asp?url=<wbr></wbr>/workshop/author/om/xframe<wbr></wbr>_scripting_security.asp </a></p>
<p>3. Cross-Domain Proxy<br />
<a href="http://ajaxpatterns.org/Cross-Domain_Proxy" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ajaxpatterns.org/Cross<wbr></wbr>-Domain_Proxy</a></p>
<p>4. Cross Domain XMLHttpRequest using an IFrame Proxy<br />
<a href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book75" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://manual.dojotoolkit.org<wbr></wbr>/WikiHome/DojoDotBook/Book75 </a></p>
<p>5. Back Button Support for Atlas UpdatePanels<br />
<a href="http://www.nikhilk.net/BackButtonSupport.aspx" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://www.nikhilk.net/BackButt<wbr></wbr>onSupport.aspx </a></p>
<p>6. Cross-document messaging hack<br />
<a href="http://blog.monstuff.com/archives/000304.html" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://blog.monstuff.com<wbr></wbr>/archives/000304.html</a></p>
<p>7. Calling web services hosted outside of your application with &#8220;Atlas&#8221;<br />
<a href="http://blogs.msdn.com/federaldev/archive/2006/07/31/684229.aspx" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://blogs.msdn.com/federalde<wbr></wbr>v/archive/2006/07/31/684229<wbr></wbr>.aspx</a></p>
<p><a href="http://www.federaldeveloper.com/Shared%20Documents/Presentations%20by%20Marc%20Schweigert/CallAtlasWebServiceInDifferentProject.zip" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">    http://www.federaldeveloper<wbr></wbr>.com/Shared%20Documents<wbr></wbr>/Presentations%20by%20Marc<wbr></wbr>%20Schweigert/CallAtlasWebServi<wbr></wbr>ceInDifferentProject.zip </a></p>
<p>8. AJAX Tip: Passing Messages Between iframes<br />
<a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=3b03cf9d-b589-4838-806e-64efcc0a1a15" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">    http://www.25hoursaday.com<wbr></wbr>/weblog/PermaLink.aspx?guid<wbr></wbr>=3b03cf9d-b589-4838-806e<wbr></wbr>-64efcc0a1a15</a></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://www.behindgfw.com/archives/2008/06/google-earth-in-browser.html" title="浏览器中的GOOGLE地球">浏览器中的GOOGLE地球</a></li><li><a href="http://www.behindgfw.com/archives/2009/06/china-blocked-google.html" title="没有Gmail我们可以用邮局寄信">没有Gmail我们可以用邮局寄信</a></li><li><a href="http://www.behindgfw.com/archives/2009/04/gmail-sender-time-zone.html" title="显示Gmail发信人时区">显示Gmail发信人时区</a></li><li><a href="http://www.behindgfw.com/archives/2009/01/let-google-apps-support-cn-domains.html" title="让Google Apps支持.cn中国域名">让Google Apps支持.cn中国域名</a></li><li><a href="http://www.behindgfw.com/archives/2008/12/where-does-oil-come-from.html" title="美国的石油从哪里来">美国的石油从哪里来</a></li></ul><hr />
© 2009 <a href="http://www.behindgfw.com/archives">BehindGFW</a> |
<a href="http://feed.BehindGFW.com/">订阅</a> |
<a href="http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html">本文链接</a> |
<a href="http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html#comments">评论</a> |
<a href="http://del.icio.us/post?url=http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html&title=Google AJAX Feed API 与 Cross Site AJAX">添加到del.icio.us</a>]]></content:encoded>
			<wfw:commentRss>http://www.behindgfw.com/archives/2007/04/google-ajax-feed-api-cross-site-ajax.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
