当前位置:网站首页 > 前端开发 > 正文

前端跨域解决方案面试(前端解决跨域问题的8种方案(最新最全))



特别注意两点:


2. 前端解决跨域问题


1> document.domain + iframe      (只有在主域相同的时候才能使用该方法)


1) 在www.a.com/a.html中:

2) 在www.script.a.com/b.html中:

2> 动态创建script


这个没什么好说的,因为script标签不受同源策略的限制。

3> location.hash + iframe


原理是利用location.hash来进行传值。

注:由于两个页面不在同一个域下IE、Chrome不允许修改parent.location.hash的值,所以要借助于a.com域名下的一个代理iframe

先是a.com下的文件cs1.html文件:

cnblogs.com域名下的cs2.html:

a.com下的域名cs3.html

4> window.name + iframe


window.name 的美妙之处:name 值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的 name 值(2MB)。

1) 创建a.com/cs1.html

2) 创建a.com/proxy.html,并加入如下代码

3 在b.com/cs1.html中包含:

5> postMessage(HTML5中的XMLHttpRequest Level 2中的API)


1) a.com/index.html中的代码:

2) b.com/index.html中的代码:

6> CORS


CORS背后的思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。

IE中对CORS的实现是xdr

其它浏览器中的实现就在xhr中

实现跨浏览器的CORS

7> JSONP


JSONP包含两部分:回调函数和数据。

回调函数是当响应到来时要放在当前页面被调用的函数。

数据就是传入回调函数中的json数据,也就是回调函数的参数了。

jsonp虽然很简单,但是有如下缺点:

1)安全问题(请求代码中可能存在安全隐患)

2)要确定jsonp请求是否失败并不容易

8> web sockets


web sockets是一种浏览器的API,它的目标是在一个单独的持久连接上提供全双工、双向通信。(同源策略对web sockets不适用)

web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

只有在支持web socket协议的服务器上才能正常工作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

到此这篇前端跨域解决方案面试(前端解决跨域问题的8种方案(最新最全))的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 2021前端工程师面试题(2021 前端面试题)2026-04-30 20:09:07
  • 前端跨域(前端跨域问题)2026-04-30 20:09:07
  • 前端跨域解决方案有哪些(前端跨域问题解决方案)2026-04-30 20:09:07
  • 前端工程化模块化的理解(前端模块化工具)2026-04-30 20:09:07
  • 前端工程化的理解面试题怎么做(前端工程化做了哪些东西,怎么做)2026-04-30 20:09:07
  • 前端埋点方案是什么(前端埋点方案是什么工作)2026-04-30 20:09:07
  • 前端跨域配置代理(前端跨域配置代理ip)2026-04-30 20:09:07
  • 前端跨域解决方案cors(前端解决跨域问题的8种方案(最新最全))2026-04-30 20:09:07
  • 前端跨域解决办法(前端跨域解决方案)2026-04-30 20:09:07
  • 2021前端工程师面试题(2021 前端面试)2026-04-30 20:09:07
  • 全屏图片