出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的。javascript脚本和另外一个域的内容进行交互。
什么是跨域
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
限制的范围
Cookie、LocalStorage 和 IndexDB 无法读取。
DOM 无法获得。
AJAX 请求不能发送。
支持跨域的标签
<img src="xxx">
<link href="xxx">
<script src="xxx">
ES6 使用模块的时候要在标签中声明 type="module",而这类使用了模块的 script 是受限于同源策略的。
open in browser和live server区别
前者访问电脑文件路径,使用ES6模块化引入js,会导致Origin null is not allowed by Access-Control-Allow-Origin
,同源策略限制file协议下脚本的访问权限。后者使用的是服务器,能够代理file文件到指定url下,不会引起跨域。
Comments