主页index.html的主要代码如下:
<
button
onclick="crossDomain();">开始跨域</
button
>
<
div
id="ajax"></
div
>
<
iframe
src="http://work.2fool.cn/crossdomain/iframe.html" id="iframe" style="display:none;">
</
iframe
>
<
script
type="text/javascript">
document.domain = '2fool.cn';
function crossDomain(){
var iframe=document.getElementById('iframe').contentWindow.$;
iframe.get("http://work.2fool.cn/crossdomain/helloworld.txt",function(data){
document.getElementById("ajax").innerHTML=data;
});
}
</
script
>
|
iframe页面主要代码如下:
<
script
type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></
script
>
<
script
type="text/javascript">
document.domain = '2fool.cn';
</
script
>
|
原理:通过给主页面跟请求页面设置相同的document.domain来,欺骗浏览器,达到Ajax跨子域的效果,此方法在IE,chrome,Firefox,Safari,Opera下测试通过。
缺点:无法实现不同主域名之间的通讯。并且当在一个页面中还包含有其它的iframe时,会产生安全性异常,拒绝访问。
本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/archive/2011/08/16/2140623.html,如需转载请自行联系原作者