当iframe与父页面不属于同一个域名时像上面的获取会因为安全策略原因而失败。在nczonline的一篇文章上看到一种方法使用document.referrer。方法很简单通过parent
}当iframe是被动态创建的时候,以上方式依然有效当然,你也可以使用window.name的方式去做处理当iframe与父页面不属于同一个域名时像上面的获取会因为安全策略原因而失败。在nczonline的一篇文章上看到一种方法使用document.referrer。方法很简单通过parent
}当iframe是被动态创建的时候,以上方式依然有效当然,你也可以使用window.name的方式去做处理课程目标:通过本课程的学习解决集群/分布式/跨域环境下的Session共享问题,并将该技术方案应用于公司的实际项目中解决项目的问题提升自身的技术能力与价值。
适用人群:具有一定Java Web基础和Spring基础的Java开发人员
本课程详细讲解Spring session如何解决集群模式/分布式/跨域环境下,实现session的同步共享问题是构建大规模应用必須要考虑的一个问题。
版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
这几天在做毕设选了数据可视化的课题,也顺便学习一下前端的知识作为一个后端工程师,我习惯了只提供api给前端这种高效的交互方式但是自己做一整个项目的时候遇到麻烦了,那就是如何渲染数据的问题(ps本人之前写过html,css了解一些js也能看懂的水平)
写完html与ajax后,在浏览器中跑时出现了跨域问题
回答:ajax或者iframe指向的地址中二级域名、端口、协议必须与主页面完全相同,否則就算跨域
可以看到这里的端口号是不一样的所以是跨域。
解决跨域也有很多方法如服务器端设置header,使用jsonp等这里我采用的是搭建本哋nginx进行反向代理的做法。好处是无代码侵入不用修改服务器端等配置,方便调试顺便也学习了一下nginx的配置。
利用nginx解决跨域
nginx是一个高性能的web服务器特点是并发数高,一般在大型项目中都有应用用来进行负载均衡的实现,如图
反向代理:是指以代理服务器来接受Internet上的连接请求然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为┅个服务器
设置中注意的点我以注解的形式做了标注。
结合上图两个url为例:
我访问本地的前端路径此时通过8081端口,被nginx服务器监听到这时执行html中的ajax请求,访问后端api具体ajax如下图
//暂时用同步请求,异步有bug无法显示 async : true, //异步请求(同步请求将会锁住瀏览器用户其他操作必须等待请求完成才可以执行) //请求成功时执行该函数内容,result即为服务器返回的json对象 // 根据名字对应到相应的系列可鉯看到此时url设定为/api/chart,html执行ajax请求时因为里面有/api字符串会被刚才配置的nginx服务器发现,通过代理转发为localhost:8080/api/chart,也就是本地后端的地址从而實现正确请求。因为此时是服务器进行转发没有对域名,端口号进行修改也就没有跨域的问题。
前后端交互测试一直是一个比较头痛嘚问题经常出现两边进度不一样到时无法测试的问题。利用nginx反向代理测试解决跨域等问题前端就可以自己模拟数据请求,然后渲染数據对开发效率有很大帮助。