聊聊 iframe, CSP, 安全, 跨域】的更多相关文章

参考:http://geeksun.iteye.com/blog/1070607 /** * iframe跨域提交大数据 * @param action 跨域地址 * @param arr [ {name:'loginName',value:'liuxw'}, {name:'password',value:'123456'} ] * @param callUrl 服务器重定向该url指向画面.(callUrl所指向画面与IframCall函数调用画面在同一域名下) */function Ifra…
通常我们会有一个统一的上传接口,这个接口会被其他的服务调用.如果出现不同域,还需要无刷新上传文件,并且获取返回值,这就有点麻烦了.比如,新浪微博启用了新域名www.weibo.com,但接口还是使用原来的域:picupload.t.sina.com.cn. 研究了一下新浪微博的处理方法,这里大概演示一下. 首先是一个正常的上传页面 upload.html <script> // 这个函数将来会被iframe用到 function getIframeVal(val) { alert(val);…
原文:http://www.cnblogs.com/xueming/archive/2013/02/01/crossdomainajax.html 在漫长的前端开发旅途上,无可避免的会接触到ajax,而且一般情况下都是用在同一域下的ajax请求:但是如果请求是发生在不同的域下,请求 就无法执行,并且会抛出异常提示不允许跨域请求,目前我没有找到明确的资料说明这是为什么,我觉得应该是出于安全性的考虑吧.纵然如此,要实现跨域访问的 话,方法还是有的,而且不只一种,在这里介绍其中一种解决方案:如何利用i…
在实际项目开发中可能会碰到在 a.com 页面中嵌套 b.com 页面,这时第一反应是使用 iframe,但是产品又提出在 a.com 中操作,b.com 中进行显示,或者相反. 1.postMessage   postMessage方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档.多窗口.跨域消息传递. 语法: otherWindow.postMessage(message, targetOrigin, [transfer]); otherWindow:其他窗口的引用,如…
window.postMessage()方法可以安全地实现Window对象之间的跨域通信.例如,在页面和嵌入其中的iframe之间. 不同页面上的脚本允许彼此访问,当且仅当它们源自的页面共享相同的协议,端口号和主机(也称为“同源策略”).window.postMessage()提供了一个受控的机制相对来安全地规避这个限制. 发送消息的基本语法: targetWindow.postMessage(message, targetOrigin, [transfer]); targetWindow就是接…
父级调用iframe方法: document.getElementById("iframe").contentWindow.func(data1,data2...) 子级 iframe中调用 父级html中方法: parent.func(data1,data2...) 使用的前提条件是要在同域名下,想要如果域名不同,甚至端口不同,都会存在 跨域 的问题. 简单示例demo:    a.html 页面 <html> <head> <meta http-equ…
原文:http://geeksun.iteye.com/blog/1070607 需求:从S平台上传文件到R平台,上传成功后R平台返回给S平台一个值,S平台是在一个页面弹出的浮窗里上传文件,所以不能用直接用向R平台submit的方式提交,换用一种类AJAX方式实现,此处用了target的方式,是一种伪AJAX. 提交页面代码: <form name="form_add" method="post" action="b.action"  en…
script.image.iframe的src都不受同源策略的影响.所以我们可以借助这一特点,实现跨域.如前面所介绍的JSONP跨域,以及灯标(Beacons). 该篇随笔主要阐述iframe结合一些技术,实现跨域请求. 1.iframe+window.name; 2.iframe+location.hash; 3.iframe+window.postMessage. 另,在最后赋予“灯标”技术阐述. 一.iframe + window.name实现跨域 window对象有个name属性,该属性…
详解 前文提到用jsonp的方式来跨域获取数据,本文为大家介绍下如何利用window.name+iframe跨域获取数据. 首先我们要简单了解下window.name和iframe的相关知识.iframe是html的一个标签,可以在网页中创建内联框架,有个src属性(指向文件地址,html.php等)可以选择内联框架的内容,可以看个例子(猛戳这里),大概了解下就行了.window.name(一般在js代码里出现)的值不是一个普通的全局变量,而是当前窗口的名字,这里要注意的是每个iframe都有包…
提要 项目中与到iframe子页面中需要通过top获取在父页面中的全局变量的需求,由于App部署的缘故,导致父页面和iframe子页面分别在不同的端口下,导致iframe跨域现象,通过查阅资料进行问题解决. 浏览器有一个同源策略,第一种限制就是不能通过ajax的方法去请求不同源的文档.第二种限制是不能浏览器中不同域的框架之间是不能进行js的交互操作的. 不过有一点,不同框架之间(父子框架和同辈框架),是能够获取到彼此的window对象的,但是却不能获取到window对象的属性和方法(html5中…