首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

近似完美的简单 JS 跨域解决方式 -window.name

2012-11-22 
近乎完美的简单 JS 跨域解决方式 --window.name当然,“近乎完美”仅仅是个人观点,但如下所述,它确实简单而颇

近乎完美的简单 JS 跨域解决方式 --window.name
当然,“近乎完美”仅仅是个人观点,但如下所述,它确实简单而颇有效益!

一直在寻求一种自己满意的 JS 跨域方式(这里是指任意跨域),曾经了解过:

    即时插入 script 元素的方式,会让脚本立即执行,不安全,并且需要与跨域的远端做好约定——比如变量名。细节较为繁琐。写 iframe 的 location.hash 的方式,会导致历史记录的产生,且数据量有限,同时,因为 URL 的内容可视,既不好看也容易泄露信息。用代理? 虽然算是最“正宗”的完整跨域方案,但太麻烦了点——首先得有代理,如果量大的话,代理的负担会很重,会导致“瓶颈”制约。利用 Flash 跨域,不在考虑之列——复杂了些,并且那不算是 JS 跨域。

无意中看到一篇文章《使用 window.name 解决跨域问题》……豁然开朗! 俺的问题终于解决了。

对那个实现小改了一下,加了浏览器本地设置 Window.name 的功能,实现浏览器“本地”异域数据的传递(如从浏览器窗口A传递数据到窗口B,仅在本地进行,且两个域不同)——这会产生一个很蛙王的应用(下一篇文章《普通 http 网络下数据的安全传输》将详细说明,本文后有少量提及)。感谢网络! 也感谢愿意分享的技术达人!

下面贴出俺的代码,也分享一下,呵呵……
(注意:本地需要创建一个名为 proxy.html 的空文件)

     }
      
        _clear(frame);
        if(callback && typeof callback === 'function') {
            callback(data);
          
        }
    }
catch 到的错误是拒绝访问 13 楼 leafxf 2012-07-09   这个和直接引用js有多大不同和优点?

热点排行