什么是跨域,为什么会有跨域?

2019-08-10  本文已影响0人  Tz1314

跨域:

浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域

为什么会有跨域:

在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。在请求的过程中我们要想回去数据一般都是post/get请求,所以..跨域问题出现

跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题,比如a标签、script标签、甚至form标签(可以直接跨域发送数据并接收数据)等

跨域的方案

CORS: 服务器设置允许,浏览器要能够识别这个头

JSONP:

浏览器script的src支持跨域访问,发了一个callback去服务器

服务器接受callback 返回了一个函数的调用携带了数据回来

浏览器接收到返回值当做js解析,执行代码

兼容性强

只能get,数据量小

sliverlight

websokcet

postmessage

iframe

上一篇 下一篇

猜你喜欢

热点阅读