zoukankan      html  css  js  c++  java
  • Ajax跨子域

    主页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时,会产生安全性异常,拒绝访问。

    关注下面二维码,订阅更多精彩内容。
    微信打赏
    关注公众号(加好友):

  • 相关阅读:
    健壮性与可靠性
    invoke与call
    协变性和逆变性
    枚举类型和位标记
    MacOs mysql 安装
    scp -本地文件上传服务器,指定端口
    java中的无穷大和无穷小
    calendar类-时间处理类
    linux 下ln命令--笔记
    hdfs 文件系统命令操作
  • 原文地址:https://www.cnblogs.com/vipstone/p/2140623.html
Copyright © 2011-2022 走看看