<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[张宴的博客]]></title> 
<link>http://zyan.cc/index.php</link> 
<description><![CDATA[Web系统架构与底层研发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[张宴的博客]]></copyright>
<item>
<link>http://zyan.cc/ajaxcdr/</link>
<title><![CDATA[AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>张宴 &lt;net@s135.com&gt;</author>
<category><![CDATA[PHP/JS/Shell]]></category>
<pubDate>Mon, 09 Mar 2009 03:54:45 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/</guid> 
<description>
<![CDATA[ 
	　　[文章+部分代码 作者：张宴 本文版本：v1.0 最后修改：2009.03.09 转载请注明原文链接：<a href="http://blog.zyan.cc/ajaxcdr/" target="_blank">http://blog.zyan.cc/ajaxcdr/</a>]<br/><br/>　　最近的一个项目中，需要通过 JavaScript 提交表单数据到另一个域名下的PHP接口（因为数据较大，需要HTTP POST方式提交），并获取PHP接口的返回值，在页面无刷新、无跳转的情况下，更新div标签内的内容。<br/><br/>　　浏览器出于安全考虑，是不允许JavaScript代码进行跨域操作。JavaScript 和 AJAX 跨域访问分为两大类，一是本域和子域的交互，二是本域和其他域的交互。<br/><br/>　　一、本域和子域的交互：<a href="http://www.zyan.cc" target="_blank">www.zyan.cc</a> 和 blog.zyan.cc<br/>　　二、本域和其他域的交互：blog.zyan.cc 和 api.bz<br/><br/>　　本域和子域的交互，可以通过iframe设置两个域名document.domain = "zyan.cc"，实现统一zyan.cc域下的跨域访问。<br/><br/>　　本域和其他域的交互，可以通过iframe、代理、JS创建动态脚本等几种方法来实现，<a href="http://www.phpchina.com/html/48/n-33848.html" target="_blank">这里有篇文章对几种方法作了简要的介绍</a>。<br/><br/>　　iframe、JS创建动态脚本这两种方法，需要开发者能控制两个域，两端都要编写相应的代码，非常麻烦。在本域服务器上用PHP写个代理中转程序，让本域PHP程序去读取远程其他域的数据再返回给自己，是常用的方法。但是，在本域“前端是CDN或Squid缓存服务器，后端才是PHP应用程序服务器”的系统架构下，穿透CDN或Squid去访问不能被缓存的PHP代理中转程序，效率是很低的。<br/><br/><hr/><br/>　　国外有人尝试用 Flash 做 JavaScript 和 AJAX 跨域访问中转，无疑是一个好方法。JavaScript 将数据提交给本域下的 Flash，通过 Flash 中转去访问其他域的接口，条件只需要其他域的根目录下有一个crossdomain.xml文件，文件中设置允许所有域名或允许本域访问即可。很多网站的API域名都提供了crossdomain.xml文件。<br/><br/>　　例如：<br/>　　1、新浪博客的crossdomain.xml文件（<a href="http://blog.sina.com.cn/crossdomain.xml" target="_blank">http://blog.sina.com.cn/crossdomain.xml</a>）设置了允许所有域名访问；<br/>　　2、饭否API的crossdomain.xml文件（<a href="http://api.fanfou.com/crossdomain.xml" target="_blank">http://api.fanfou.com/crossdomain.xml</a>）设置了允许所有域名访问；<br/>　　3、校内网API的crossdomain.xml文件（<a href="http://api.xiaonei.com/crossdomain.xml" target="_blank">http://api.xiaonei.com/crossdomain.xml</a>）设置了允许所有域名访问；<br/>　　4、优酷网的crossdomain.xml文件（<a href="http://www.youku.com/crossdomain.xml" target="_blank">http://www.youku.com/crossdomain.xml</a>）设置了允许所有域名访问；<br/>　　5、土豆网的crossdomain.xml文件（<a href="http://www.tudou.com/crossdomain.xml" target="_blank">http://www.tudou.com/crossdomain.xml</a>）设置了允许所有域名访问；<br/><br/>　　6、逍遥视频的crossdomain.xml文件（<a href="http://v.xoyo.com/crossdomain.xml" target="_blank">http://v.xoyo.com/crossdomain.xml</a>）设置了只允许*.xoyo.com域名访问；<br/>　　7、网易的crossdomain.xml文件（<a href="http://www.163.com/crossdomain.xml" target="_blank">http://www.163.com/crossdomain.xml</a>）设置了只允许tech.163.com、sports.163.com等几个域名访问。<br/><br/><hr/><br/>　　本人在“<a href="http://blog.monstuff.com/archives/000280.html" target="_blank">Cross-domain AJAX using Flash</a>”的基础上，增加了对表单进行智能处理的功能，封装了一个JavaScript包：<span style="color: #FF0000;">AJAXCDR</span>。通过 AJAXCDR，即可轻松地解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求，支持IE、Firefox、谷歌Chrome等多种浏览器。<br/><br/>　　AJAXCDR 拥有两个文件：ajaxcdr.js 和 ajaxcdr.swf，AJAXCDR 拥有一个 JavaScript 函数 AjaxCrossDomainRequest() 和一个全局变量 AjaxCrossDomainResponse。<br/><br/>　　<strong>一、AJAXCDR 下载：</strong><br/><br/>............<br/><br/>Tags - <a href="http://zyan.cc/tags/ajaxcdr/" rel="tag">ajaxcdr</a> , <a href="http://zyan.cc/tags/ajax/" rel="tag">ajax</a> , <a href="http://zyan.cc/tags/javascript/" rel="tag">javascript</a> , <a href="http://zyan.cc/tags/cross-domain/" rel="tag">cross-domain</a> , <a href="http://zyan.cc/tags/cross/" rel="tag">cross</a> , <a href="http://zyan.cc/tags/domain/" rel="tag">domain</a> , <a href="http://zyan.cc/tags/flash/" rel="tag">flash</a> , <a href="http://zyan.cc/tags/form/" rel="tag">form</a>
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2737</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>jiayin &lt;zhangjiayin99@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 09 Mar 2009 04:55:24 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2737</guid> 
<description>
<![CDATA[ 
	这个以前用过。 好像不怎么好用， ie 下会有 bug js报错 不知道你遇到过。
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2739</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>jk &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 09 Mar 2009 06:32:53 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2739</guid> 
<description>
<![CDATA[ 
	行：345<br/>错误：语法错误
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2742</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>lostsnow &lt;lostsnow@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 09 Mar 2009 08:03:17 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2742</guid> 
<description>
<![CDATA[ 
	http://www.phprpc.org
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2743</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>janlay &lt;janlay@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 09 Mar 2009 08:49:40 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2743</guid> 
<description>
<![CDATA[ 
	如果只是GET请求的话，JSONP可以完美解决，jQuery的JSONP实现使用了一些小技巧（动态插入脚本引用的标签）。目前，绝大多数API是基于GET请求设计的，不过这个思路也是个很好的idea
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2748</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>小蔡 &lt;cyy0523xc@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 10 Mar 2009 01:45:43 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2748</guid> 
<description>
<![CDATA[ 
	呵呵，以后跨域访问又多了一种方法，好好学习学习～
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2750</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>小蔡 &lt;cyy0523xc@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 10 Mar 2009 02:33:53 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2750</guid> 
<description>
<![CDATA[ 
	简单用了一下，感觉有两个地方改一下会好点：1，感觉应该用匿名函数封装一下，要不函数$很容易和别的冲突；2，定义var swfName = &quot;/ajaxcdr-1.0/ajaxcdr.swf&quot;; 写死在函数里面不太好，至少应该可以在外面弄个局部的变量方便配置（如果用了匿名函数的话）。只是一点愚见，希望有用～
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2751</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>花生 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 10 Mar 2009 03:06:26 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2751</guid> 
<description>
<![CDATA[ 
	很好的东西，可惜还是要目标域支持crossdomain.xml，恐怕不具备广泛应用的价值。
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2756</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>horse &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 11 Mar 2009 04:33:43 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2756</guid> 
<description>
<![CDATA[ 
	水平很好，学了点知识，谢谢分享！
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2773</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>licufa &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 12 Mar 2009 09:33:21 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2773</guid> 
<description>
<![CDATA[ 
	你的博客很不错，我做了一个将1000个博客链接拼成一幅大图的博客拼图网，其中就收录了你的博客，欢迎你来找找看，也欢迎交换链接。我的博客，面谱 <a href="http://www.mianpu1000.com" target="_blank">www.mianpu1000.com</a>
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2781</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>神仙 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 13 Mar 2009 07:27:50 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2781</guid> 
<description>
<![CDATA[ 
	能否提供 flash 的 源文件呢
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2805</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>无痕 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 16 Mar 2009 09:02:57 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2805</guid> 
<description>
<![CDATA[ 
	一直关注你的博客
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2828</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>hehe &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 19 Mar 2009 03:54:10 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2828</guid> 
<description>
<![CDATA[ 
	jsonp是需要服务器端返回数据格式的支持的....
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2834</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>ayeah &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 20 Mar 2009 03:14:40 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2834</guid> 
<description>
<![CDATA[ 
	不错好用~~
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2836</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>John &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 20 Mar 2009 06:00:54 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2836</guid> 
<description>
<![CDATA[ 
	demo2在IE6下有错误
]]>
</description>
</item><item>
<link>http://zyan.cc/ajaxcdr/#blogcomment2843</link>
<title><![CDATA[[评论] AJAXCDR：利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求[原创]]]></title> 
<author>双色球 &lt;asdfasd@qq.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 21 Mar 2009 05:36:47 +0000</pubDate> 
<guid>http://zyan.cc/ajaxcdr/#blogcomment2843</guid> 
<description>
<![CDATA[ 
	不错，好用
]]>
</description>
</item>
</channel>
</rss>