【Javascript】利用document.domain解决子域跨域访问问题



    根据浏览器安全策略,不同域名(比如witmax.cn和www.witmax.cn)、不同协议(比如http://witmax.cnhttps://witmax.cn)、不同端口(比如http://witmax.cnhttp://witmax.cn:8088)之间的页面不能相互访问,包括XMLHTTPRequest方式和Javascript的页面访问。

    有一个例外是:在相同根域、相同协议、相同端口的情况下,可以利用设置document.domain方式来解决不同子域的跨站访问问题。

    举个例子,想在witmax.cn中,访问www.witmax.cn域名下的内容,需要以下几步来完成:



    1. 在主页面(位于witmax.cn中)通过隐藏的iframe嵌套子页面(内容位于www.witmax.cn
    2. 在主页面中设置document.domain="witmax.cn";
    3. 在子页面中设置document.domain="witmax.cn";
    4. 在主页面和子页面中可以相互访问内容了;需要跨域访问其他内容,可以通过在对应页面上发请求完成取回数据然后进行对应操作

    P.S. 补充几点:

    1、document.domain可以由子域www.witmax.cn修改为主域witmax.cn,而不能由witmax.cn修改为www.witmax.cn(不是所有浏览器都支持)。

    2、不同根域、或不同协议、或不同端口之间的跨域访问只能通过服务器断的代理程序来解决了。

    3、详细的示例见参考文档:



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【Javascript】利用document.domain解决子域跨域访问问题
    标签:
    分享:

已经有2 条评论抢在你前面了~

  1. 沙发
    洋洋 2012年1月14日 下午11:57

    比较高难度的了。。

    [回复]

  2. 板凳
    呱呱歌舞汇 2012年1月8日 下午9:55

    不同域名之间的跨域还是很难解决吧。

    [回复]

无觅相关文章插件,快速提升流量