前端跨域-未完待续

一、什么是跨域?

  跨域是指一个域下的文档或脚本试图去请求另一个域下的资源(广义的),我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。

二、什么是同源策略?

同源策略:同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器的一些正常功能就会受到影响。

同源:所谓同源(即指在同一个域),就是两个页面具有相同的协议、主机、端口号

当协议、主机、端口号有一个不同时,就是跨域。

   存在以下三种特殊情况,可以无视同源策略

1、加载图片,image标签src所指向的图跟地址是可以跨域的

2、用link标签加载css,href指向地址也是可以跨域的

3、script标签加载js,src指向的js地址也是可以跨域的

三、跨域会导致的问题

1、Cookie、LocalStorage无法读取,因为它们在两个源,也就是没有在一个域
2、DOM 和 Js对象无法读取
3、AJAX 请求不能发送

四、解决方案

1.JSONP

2.CORS

3.通过修改document.domain来跨域

4.使用window.name来进行跨域

5. 使用HTML5中新引进的window.postMessage方法来跨域传送数据

未完待续...

原文地址:https://www.cnblogs.com/cdj61/p/13030998.html