美文网首页
四种跨域方式

四种跨域方式

作者: 皮卡乒乓 | 来源:发表于2017-12-13 12:06 被阅读0次

1、jsonp

<script>
        function getWeather(json) {
            console.log(json);
        }
 </script>
    <script src="http://e.163.com/jnewsWeather.json? callback=getWeather&cityId=101010100">
   </script>

2、postMessage

<iframe id="iframe" width="480px" height="270px" src="http://jasonkid.github.io/fezone/"></iframe>
<script>
    var iframe = document.getElementById('iframe');
    window.addEventListener('message', function(event) {
        console.log(event);
        event.source.postMessage('Message from parent page.', '*');
    });
</script>

3、iframe + document.name

<iframe id="iframe" width="480px" height="270px" src="http://jasonkid.github.io/fezone/"></iframe>
<script>
    var iframe = document.getElementById('iframe');
    iframe.onload = function(){
        iframe.onload = function(){
            console.log(iframe.contentWindow.name);
        }
        iframe.src = "about:blank";
    }
</script>

4、document.domain

index.html

<iframe id="iframe" width="480px" height="270px" src="iframe.html"></iframe>
    <script>
        /**
         * 在框架的父页面也要设置 document.domain
         */
//        document.domain = x.x; // 替换为x.x之类的一级域名,但必须是当前domain的后缀。

        var iframe = document.getElementById('iframe');
        iframe.onload = function(){
            iframe.contentDocument.getElementsByTagName('body')[0].innerText = 'Text Changed!';
            iframe.contentWindow.iframeFunc();
        }
    </script>

iframe.html

    <p>这是iFrame</p>
    <script>
        /**
         *  document.domain 默认是整个域名
         *  所以不同 N 级域名的 iframe 是无法被获取的
         *  我们将 iframe 的 document.domain 设置为域名的一级域名
         */
//        document.domain = x.x; // 替换为x.x之类的一级域名,但必须是当前domain的后缀。

        function iframeFunc() {
            console.log('Calling function successfully!');
        }
    </script>

相关文章

  • 四种跨域方式

    1、jsonp 2、postMessage 3、iframe + document.name 4、document...

  • #hello,JS:15 同源策略 & 跨域(JSONP)

    跨域有几种常见的方式?你有没有跨域使用的经验? 方式: 使用jsonp实现跨域?使用cors实现跨域?浏览器另类的...

  • Ajax 请求和跨域

    跨域的几种方式: cors方式 cross-orign-resource-shareing(跨域)参考:http:...

  • 关于设置env等环境变量的思考

    1、如何处理跨域后台处理跨域前端处理跨域浏览器处理跨域 前端本地处理跨域:代理线上跨域的处理方式:Nginx反向代...

  • JS四种跨域方式

    1.JSONP script标签是不受同源策略限制的,它可以载入任意地方的javascript文件,而不要求同源 ...

  • 跨域的四种方式

    一.浏览器的同源策略 1.什么是同源 同协议:如都是http或者https 同域名:如都是http://baidu...

  • JSONP跨域

    JSONP原理及应用 之前的文章中简单介绍过前端可以实现的跨域方式,这次介绍一种更为常用的跨域方式,但这种跨域方式...

  • springboot 三种跨域处理方式

    springboot 三种跨域处理方式:1.通过Filter方式实现全局跨域2.通过Interceptor方式实现...

  • 常见前端开发面试题(http部分)

    跨域有哪几种方式 1.jsonp跨域2.CORS跨域资源共享3.iframe标签跨域4.在webpack中通过配置...

  • AJAX

    题目 手写一个ajax 跨域的常用实现方式 知识点 XMLHttpRequest 状态码 跨域:同源策略,跨域解决...

网友评论

      本文标题:四种跨域方式

      本文链接:https://www.haomeiwen.com/subject/hyeaixtx.html