08月26, 2022

什么是跨域

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的。javascript脚本和另外一个域的内容进行交互。

什么是跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

限制的范围

  1. Cookie、LocalStorage 和 IndexDB 无法读取。

  2. DOM 无法获得。

  3. 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下,不会引起跨域。

参考链接

本文链接:https://imyoyo.xyz/post/what-is-cross-domain.html

-- EOF --

Comments