资讯专栏INFORMATION COLUMN

浅谈前端跨域

dunizb / 1448人阅读

摘要:一什么是跨域跨域简单的理解就是同源策略的限制。同源策略限制的内容请求不能正常进行。同源策略默认地址是网页的本身。

一、什么是跨域?

跨域简单的理解就是JavaScript同源策略的限制。是出于安全的考虑,a.com域名下的js不能操作b.com或者c.com域名下的对象。
当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算叫“跨域”。

一个正常的域名地址组成(图片来自网络资源):

注意:跨域不是请求发布出去,请求可以正常发出,服务器也能收到并返回结果,只是结果被浏览器所拦截了。

附上一张参考图,便于大家深入理解(图片来自网络资源)

二、什么是同源策略与限制

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。这是一种保护用户信息,防止恶意身份伪造的一种安全机制。
同源策略限制的内容:

Ajax请求不能正常进行。

Cookie、LocalStoage、indexDB等无法读取。

3.DOM 无法获得。

不过,有几个标签却可以允许跨域请求资源(可以作为解决跨域的一种方案)。

1.
2.
3.
三、处理跨域方法一——JSONP
JSONP是跨域通信最常用的方法,其最大的特点就是简单适用、兼容性好,可用于解决主流浏览器的跨域数据访问的问题。
缺点是仅支持get方法具有局限性。
它的基本思想是,在网页中添加一个

注意,该请求的查询字符串有一个callback参数,用来指定回调函数的名字,这对于JSONP是必需的。

由于                
阅读需要支付1元查看
<