最近工作中安排了个关于JS跨域问题,项目组最初使用了jquery.postmessage进行跨域,结果发现IE8以下不兼容,所以选择了easyXDM.
但是easyXDM在IE8以下需要FLASH插件支撑,这个时候问题又出现了,我们的页面没有视频,如果用户没有安装FLASH插件的话,那就需要提示用户下载FLASH插件了。
然后我开始用window.name写了个实例,确实能跨域跨浏览器获取数据,但是实时监听数据变化来执行JS方法怎么办,最简单的方法就是建立一个计时器,每隔多少时间执行下看获取的值是否发生改变,然后在执行。
但是这个方法我觉得不是很妥当,于是想到javascript能否建立一个SOCKT进行监听呢,于是查看JSCOKET,发现JSOCKET通信原是借助于FLASH,结果牛人在网上说明,之所以JAVASCRIPT需要依赖FLASH建立SOCKET,是因为JAVASCRIPT是客户端语言,不能进行SOCKT通信.
经过上述的经历,我查了些资料。
1.postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。(详细见http://bbs.phpchina.com/thread-230525-1-1.html)
2.jsockt原理是通过JS于FLASH交互,建立SOCKET通信.(详细见http://code.google.com/p/jsocket/wiki/Reference,其中
jSocket.setup(target)
target:string id of the element to replace with the socket.
Add the socket swf to the page, by replacing an element specified with the target argument. jSocket.onReady Will be fired upon succesful completion. )
3.easyXDM 在IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4使用postmessage,在IE6+,iE7+使用FLASH(详细见http://easyxdm.net/wp/),因此得出easyXDM的跨域原理是分别采用了postmessage跨域及借助FLASH进行跨域。
分享到:
相关推荐
总之,jQuery.fileDownload是实现跨域文件下载的利器,配合SpringBoot的文件处理能力,能够轻松地在Web应用中实现高效、安全的文件下载功能。理解其工作原理并合理运用,能极大地提升用户体验。
window.name 解决跨域问题的文档 window.name 传输技术是 Thomas Frank 发明的,旨在解决 cookie 的一些劣势,例如每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等。后来,Kris ...
name : "common", //资源文件名称 path : $.contextPath+"/i18n/"+i18nLanguage+"/", //资源文件路径 mode : 'map', //用Map的方式使用资源文件中的值 language : i18nLanguage, cache:false, //指定浏览器...
接下来,我们将深入探讨`window.postMessage`的工作原理、使用方法以及它在实际开发中的应用。 ### 一、`window.postMessage`工作原理 `window.postMessage`允许一个窗口向其他窗口发送消息,这些窗口可以是不同的...
2. **跨域下载支持**:jQuery.filedownload支持跨域文件下载,这在现代Web应用中非常常见,因为很多资源可能存放在不同的服务器上。 3. **流式下载**:对于大文件,插件可以实现流式下载,即边接收数据边写入本地,...
`jQuery.zclip` 是一个基于 jQuery 的 JavaScript 插件,用于在网页中实现跨浏览器的文本复制功能。这个插件利用了 `ZeroClipboard` 库,通过 Flash 技术来模拟用户点击右键复制,从而在任何支持Flash的浏览器上都能...
2. 文件上传:通过XMLHttpRequest Level 2,jQuery Form可以实现跨域文件上传,兼容多种浏览器。 3. 进度条显示:在上传大文件时,提供进度反馈,用户可以直观了解上传进度。 4. 多种提交模式:支持GET和POST方式,...
5. AJAX请求:对于网页的异步交互,jQuery.common可能会提供统一的AJAX请求方法,简化了跨域请求、数据解析等步骤。 6. 兼容性处理:考虑到浏览器之间的差异,jQuery.common通常会包含一些兼容性修复代码,确保在...
`window.postMessage()`方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文档的消息传递,即跨域通信。它的工作原理是:一个窗口向其打开的子窗口、其父窗口或者任何其他与之有某种关系的窗口发送...
window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作...
在本示例中,我们关注的是"jquery3.0.min.js"和"jquery.param.js"这两个jQuery库的特定版本,以及如何利用它们来解决跨域数据传输的问题。在"跨域代码Demo"中,我们将探讨如何通过URL参数实现Tomcat服务器与WebStorm...
5. **跨域提交**:配合CORS设置,`jquery.form.js`可以实现跨域的表单提交。 6. **兼容性**:`jquery.form.js`支持多种提交方式,包括传统的POST和PUT,以及XMLHttpRequest Level 2的FormData。 在实际使用中,...
5. window.name + iframe 跨域 6. postMessage 跨域 7. nginx 代理跨域 8. nodejs 中间件代理跨域 9. WebSocket 协议跨域 一、 通过 jsonp 跨域 通常为了减轻 web 服务器的负载,我们把 js、css,img 等静态资源...
本篇文章将详细讲解如何利用jQuery的jsonp方法实现Ajax跨域请求,以及如何在服务器端使用.Net的*.handler和WebService来返回JSON数据。 首先,理解JSONP的基本原理。JSONP是一种非官方的协议,通过动态创建`...
核心原理在于,`jquery.zclip.min.js`利用了Flash技术,因为Flash在大多数浏览器中都有良好的支持,特别是在处理跨域安全策略和剪贴板交互方面。插件内部包含了一个名为`ZeroClipboard.swf`的Flash对象,这个对象...
cookie设置插件jquery.cookie.min.js 文章《javascript设置cookie高级篇可跨域访问》https://blog.csdn.net/cplvfx/article/details/117822956
`postMessage` API是实现这一功能的关键,为了解决传统`iframe`跨域限制的问题,提供了一种安全且灵活的方法。本文将深入探讨`iframe`跨域通信与`postMessage`的使用方法和应用场景。 首先,我们需要明白什么是跨域...
《jQuery.fileupload.js:深入解析文件上传插件的精髓》 在Web开发中,文件上传功能是不可或缺的一部分,尤其在用户交互丰富的应用中。jQuery.fileupload.js作为一个强大的jQuery插件,为开发者提供了高效、易用的...
在给定的压缩包文件中,我们看到主要包含两个与jQuery Form相关的文件——"jquery.form.js"和"jquery.form.min.js",以及jQuery的核心库文件"jquery.js"和压缩版的"jquery.min.js"。 首先,让我们来深入理解jQuery ...
在JavaScript环境中,与Java或服务器端语言不同,我们通常无法直接读取.properties文件,因为浏览器安全限制禁止了这种跨域请求。然而,为了在前端实现国际化(i18n)功能,有时候我们需要在JavaScript文件中读取...