美文网首页
前端跨域解决方案

前端跨域解决方案

作者: 忽如寄 | 来源:发表于2017-08-17 19:42 被阅读80次

1、jsonp
jsonp就是利用一个script标签获取回调函数的名称从而获取数据,通常这个script标签的src设置为:请求资源的地址+获取函数的字段名+回调函数名称,当然这都是需要与服务端商量好,以library.huruji3.com和blog.huruji3.com两个域为例,在一个域名的服务器端我设置了以下代码:

router.get('/jsonp',function(req,res,next){
   const callback = req.query.callback;
   res.send(callback + '("我是jsonp")')
});

于是在另一个域名的客户端,动态添加以下代码可以看到成功执行了在客户端定义的函数:

var script = document.createElement('script')
function con(name){
console.log(name)
}
script.type='text/javascript'
script.src='http://library.huruji3.com/api/jsonp?callback=con';
document.body.appendChild(script)

如图,


jsonp.png

2、postMessage
如我在一个域名下切入另一个域名的iframe,如下代码:

var blogWin = document.getElementById('blog').contentWindow;
        setInterval(function(){
            blogWin.postMessage('我是来自图书页面的消息', "*")
        },1000)

在另一个域名中监听这个事件,如下:

window.onmessage = function(e) {
    alert(e.data);
    console.log(e.data);
  }

打开图书页面,可以看到另一个域名下的事件被执行了,如下:

postMessage.png

3、利用document.domain
在两个需要通信的页面中设置为同一个域名,如下:

document.domain = 'huruji3.com';

在内嵌了另一个域名iframe的页面中此时就可以获取到iframe的document了,如下:

document.domain.png

4、利用window.name
设置另一个域名的window.name作为data,如下:

window.name = '1000px'
window.name.png

相关文章

  • 跨域解决方案(史上最易懂)

    跨域总结 1.跨域思路 跨域解决方案一般分为两种:前端解决,后端解决 1.1 前端解决方案 通过前端解决的思想就是...

  • 跨域

    博客 说说跨域那些事儿 不要再问我跨域的问题了 前端常见跨域解决方案(全) 同源策略 JSONP(填充式JSON)...

  • 前端常见跨域解决方案(全)

    前端常见跨域解决方案(全) 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的...

  • js常见跨域解决方案

    参考:前端常见跨域解决方案(全) 跨域,什么是“域”? 这里就要先说说同源策略了。所谓同源是指"协议+域名+端口"...

  • 跨源网络访问

    链接:浏览器的同源策略链接:跨域资源共享链接:跨域共享数据的十种方法链接:前端跨域问题及其解决方案 广义的跨域:1...

  • 跨域问题整理

    跨域问题在前端在经常碰到,看到的比较好的解决方案如下:1、CORS(跨域资源共享)解决方案http://www.c...

  • 前端不同的跨域方案总结

    做个收录,方便以后复盘。本文转自:前端常见跨域解决方案(全)。 什么是跨域? 跨域是指一个域下的文档或脚本试图去请...

  • 「深入浅出」前端开发中常用的几种跨域解决方案

    编者荐语 本文将为大家介绍,前端开发中,最常用的几种跨域解决方案; 看完本文可以系统地掌握,不同种跨域解决方案间的...

  • Django 后端解决跨域问题

    前端后端分离的项目,经常会遇到跨域请求的问题。解决跨域问题,有从前端的代理解决的方案,和用后端的解决方案。这里介绍...

  • H5 知识点 - 收藏集 - 掘金

    跨域解决方案总结 - 前端 - 掘金为什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是为了保证数据的安全...

网友评论

      本文标题:前端跨域解决方案

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