当前位置:网站首页 > 编程语言 > 正文

跨域问题产生的原因(跨域问题产生的原因是)



跨域是是因为浏览器的同源策略限制,是浏览器的一种安全机制,服务端之间是不存在跨域的。

同源策略:

  • 协议相同
  • 域名相同
  • 端口相同

同源策略目的:保证用户信息安全,防止恶意网站窃取数据。同源策略是必须的,否则cookie可以共享。

设置document.domain共享cookie。

(父子页面通信)H5引入了一个API,这个API为windows对象新增了一个window.postMessage方法,允许跨窗口通信,无论这两个窗口是否同源。

JSONP是服务器无客户端跨源通信的常用方法。基本思想是网页通过添加一个标签,向服务器请求json数据,这种做法不受同源政策的限制,服务器收到请求后,将数据放在一个指定名字的回调函数里面传回来。(只能发GET请求)</p>

WebSocket是一种通信协议。使用ws://(非加密)和wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。

CORS需要浏览器和服务器同时支持。目前所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

使用代理方式跨域更加直接,因为同源限制是浏览器实现的。如果请求不是从浏览器发起的,就不存在跨域问题了:

  • 把访问其它域的请求替换为本域的请求;
  • 服务器端的动态脚本负责将本域的请求转发成实际的请求;
  • 为了通过Ajax从http://localhost:8080访问http://localhost:8081/api,可以将请求发往http://localhost:8080/api;
  • 然后利用Apache Web/Nginx 服务器的Reverse Proxy功能做如下配置:ProxyPass /api http://localhost:8081/api。

此方法只能在辅助域名相同时使用,例如a.test COM和b.test Com适用于此方法。您只需要添加文档即可。XML 到页面域 =’test。“com”是指如果辅助域名相同,可以实现跨域。

实现原则:如果a想跨域与b通信,则通过中间页c实现。三个页面,使用iframe位置在不同域之间散列值转移,直接js访问相同的字段之间进行通信。

具体实现方式:域a:a.html->域B:b.html->域a:c.html。A和B的不同域只能通过哈希值进行一种方式通信,而B和C的不同域只能通过一种方式进行通信,但C和A位于同一域中,因此C可以通过父级进行通信 父级访问页面上的所有对象。

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

通过iframe的src属性由外域转向本地域,跨域数据即由iframe的window.name从外域传递到本地域。这个就巧妙地绕过了浏览器的跨域访问限制,但同时它又是安全操作

中间代理页,与a.html同域,内容为空即可。

postMessage是HTML5 XMLHttpRequest Level 2中的API,且是为数不多可以跨域操作的window属性之一,它可用于解决以下方面的问题:

  • 页面和其打开的新窗口的数据传递
  • 多窗口之间消息传递
  • 页面与嵌套的iframe消息传递
  • 上面三个场景的跨域数据传递
到此这篇跨域问题产生的原因(跨域问题产生的原因是)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 画一画,圈一圈,填一填(圈一圈 填一填)2025-03-23 23:45:08
  • libxl.dll丢失(libpng15.dll丢失)2025-03-23 23:45:08
  • 图标字体小怎么设置方法(图标字体怎么变大)2025-03-23 23:45:08
  • max30102传感器(MAX30102传感器原理图讲解)2025-03-23 23:45:08
  • win10官方u盘启动盘制作(win10系统u盘启动盘制作)2025-03-23 23:45:08
  • 断开连接英文(断开连接英文怎么说)2025-03-23 23:45:08
  • 儿童多动症行为干预训练有哪些(儿童多动症行为干预训练有哪些方法)2025-03-23 23:45:08
  • 在线LaTeX编辑器(在线LaTeX编辑器有)2025-03-23 23:45:08
  • 文件权限777表示什么(文件权限754)2025-03-23 23:45:08
  • 手机号86验证不了谷歌(手机号86验证不了谷歌改成英文)2025-03-23 23:45:08
  • 全屏图片