`
iaiai
  • 浏览: 2198006 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

「Javascript」搞定JS面试——跨域问题

 
阅读更多
一、什么是跨域?

只要协议、域名、端口有任何一个不同,就是跨域。

二、为什么不能跨域?

浏览器有一个同源策略,用来保护用户的安全。

如果没有这个策略的话,a网站就可以操作b网站的页面,这样将会导致b网站的页面发生混乱,甚至信息被获取,包括服务器端发来的session。

三、跨域的解决方案

1、JSONP
解决方法

0)浏览器是可以引入不同域下的JS文件,利用这个特性,来实现跨域。

1)直接在a.com页面,添加一个script标签,src属性为b网站的页面url,并且传入一个callback参数。

<script> function dosomething(jsonData){

2)b网站的handlerData.php,实际做的操作就是:生成一段可执行的JS代码,调用你传入的dosomething函数。

详细介绍:http://www.cnblogs.com/2050/p/3191744.html
应用场景 常用的解决方案
请求方式 get :它本质上是下载一个资源文件。

2、document.domain
应用场景

必须满足两个条件

1)页面中嵌入firame框架。

2)当前页面和iframe中的页面,主域、协议、端口必须完全一致。
解决方法

比如页面地址是http://a.baidu.com/,嵌入的iframe是 http://b.baidu.com/

分别设置页面和iframe的document.domain为: baidu.com,就可以解决问题。

3、使用H5中的window.postMessage
解决方法

window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它

的window对象发送消息,无论这个window对象是属于同源或不同源,目前IE8+、FireFox、Chrome、

Opera等浏览器都已经支持window.postMessage方法。
应用场景

1)页面和其打开的新窗口的数据传递

2).多窗口之间消息传递

3).页面与嵌套的iframe消息传递

详细介绍:http://www.cnblogs.com/dolphinX/p/3464056.html

4、CORS方案
解决方法

CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用

向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。

header("Access-Control-Allow-Origin", "*");
分享到:
评论

相关推荐

    javascript插件 解决双向跨域问题

    本文将深入探讨JavaScript插件如何解决双向跨域问题,并通过具体的插件实例——jcrossdomain,来阐述其实现方式。 首先,理解什么是“双向跨域”至关重要。在单向跨域中,通常是一个源请求另一个源的数据,而双向...

    「JavaScript」JS四种跨域方式详解

    JavaScript跨域是前端开发中常见的问题,由于浏览器的同源策略限制,JavaScript通常无法直接访问不同源的资源。本文将详细介绍四种主要的JavaScript跨域方式:JSONP、修改`document.domain`、使用`window.name`以及...

    pdf.js,内含跨域解决办法

    PDF.js 是一个开源的 JavaScript 库,由 Mozilla 团队开发,主要用于在浏览器环境中渲染 PDF 文档。这个库使得开发者能够在网页上实现高质量的 PDF 文件查看功能,而无需依赖任何第三方插件。它支持多种现代浏览器,...

    Javascript跨域和Ajax跨域解决方案

    JavaScript跨域和Ajax跨域是Web开发中常见的问题,尤其在进行前后端分离或API调用时,由于浏览器的同源策略限制,不同域名、协议或端口的资源请求会被阻止,这就是所谓的“跨域”。本文将深入探讨JavaScript和Ajax...

    arcgis js跨域解决策略

    跨域问题源于浏览器的安全策略,旨在防止恶意脚本通过JavaScript从其他域名获取数据,以保护用户隐私。但在GIS应用中,我们需要跨域请求ArcGIS服务器上的地图服务、图层数据等资源,因此需要找到合法的解决方法。 ...

    解决ajax不能访问本地文件问题(利用js跨域原理)

    本文将探讨如何利用JavaScript的跨域原理来解决这个问题。 首先,我们要理解什么是跨域。跨域是指一个源(Origin,由协议、域名和端口组成)试图访问另一个源的资源时,如果这两个源不相同,就会被浏览器视为跨域,...

    arcgis api for javascript跨域处理方案

    在使用ArcGIS API for JavaScript开发Web应用程序时,经常会遇到跨域问题。这是因为浏览器的安全策略限制了JavaScript从一个源(域名、协议或端口)请求另一个源的数据。ArcGIS API for JavaScript是一个强大的工具...

    javascript跨域插件 实现双向跨域

    实现javascript跨域,可以在不同域名双向通信,内含demo,支持IE6+、火狐,谷歌等浏览器 配套文章:http://blog.csdn.net/mycwq/article/details/16344171

    js跨域问题解决方案.

    JavaScript跨域问题,是Web开发中常见的一个挑战,由于浏览器的同源策略限制,JavaScript无法直接访问不同源的资源,这在实现某些功能时会带来不便。本文将深入探讨JavaScript跨域问题的原因、影响以及多种解决方案...

    ASP.NET Core微服务(三)——【跨域配置】——对应练习demo(跨域)

    在现代Web开发中,跨域问题常常出现,特别是当我们的应用由多个服务或API组成时。跨域是指一个源(origin)试图访问另一个源的资源时,浏览器基于同源策略限制了这种行为。而ASP.NET Core提供了一种灵活的方式来处理...

    pdf.js 跨域版本

    跨域问题通常在 JavaScript 中是个常见的安全限制,浏览器不允许脚本从一个源(域名、协议或端口)请求另一个源的资源,以防止恶意网站通过脚本读取其他网站的数据。在 PDF.js 原版中,如果 PDF 文件存储在与网页...

    解决arcgis server跨域问题

    解决arcgis server跨域问题: 1、停掉ArcGIS Server的服务。 2、 打开&lt;ArcGIS Server&gt; \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4...

    js跨域问题小结

    JavaScript跨域问题是一个在开发Web应用时经常遇到的技术挑战,主要涉及到浏览器的同源策略(Same-Origin Policy)。同源策略是浏览器为了保护用户信息安全而设置的一种安全机制,它限制了来自不同源(协议+域名+...

    海康威视h5player.js 2.0版 跨域隔离

    海康威视h5player.js 2.0版 跨域隔离解决方案 海康威视h5player.js 2.0版为提升解码性能,采用了多线程解码技术,使用SharedArrayBuffer来完成多线程之间的数据交互。然而,SharedArrayBuffer等高级功能可被攻击者...

    js解决跨域访问问题

    ### JS解决跨域访问问题详解 #### 一、引言 在现代Web开发中,跨域访问问题是开发者经常面临的一个挑战。特别是在使用JavaScript进行前后端交互时,由于浏览器的同源策略限制,开发者经常会遇到跨域问题。本文将...

    JavaScript 跨域通信方法

    由于浏览器的安全策略——同源策略(Same-origin policy)的存在,JavaScript在处理不同源之间的数据交互时会受到严格的限制。本文将详细介绍几种有效的跨域通信方法,特别是针对父子页面之间的跨域通信。 #### 二、...

    js关于getImageData跨域问题的解决方法

    在探讨JavaScript中使用canvas元素的getImageData方法时,经常会遇到一个常见的问题——跨域(CORS,即跨源资源共享)限制。本文将详细探讨这一问题的产生原因以及两种解决方法。 首先,让我们理解什么是跨域问题...

    file协议导致的跨域问题以及解决方案.docx

    5. 使用 Node.js 开启一个服务器,例如使用 Express 框架,可以解决跨域问题。 同源策略是为了安全而设定的约定,ES6 模块化也需要遵守同源策略,而 File 协议导致的跨域问题可以通过不同的解决方法来解决。

    javascript小工具之——cookie操作

    这篇博客“javascript小工具之——cookie操作”很可能会探讨如何利用JavaScript进行有效的Cookie操作。 Cookie是由Web服务器发送到用户的浏览器并存储在本地的小型文本文件。它们由键值对组成,可以设置过期时间,...

    完美解决iframe跨域问题

    3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...

Global site tag (gtag.js) - Google Analytics