跳到主要内容

简述什么是同源限制 ?

参考答案:

同源限制是浏览器安全策略的一部分,也称为同源政策(Same-Origin Policy)。它的核心原则是,浏览器只允许来自同一源的网页之间进行交互,这里的“同源”指的是协议、域名和端口三个元素完全相同。

同源限制的目的主要是为了防止恶意脚本对网站数据的非法访问和操作,保护用户数据的安全。如果两个网页不满足同源条件,它们之间的交互就会受到限制,例如:

  1. 无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB。
  2. 无法接触非同源网页的 DOM(文档对象模型)。
  3. 无法向非同源地址发送 AJAX 请求(尽管可以发送,但浏览器会拒绝接受响应)。

然而,有时候开发者需要在不同源的网页之间进行通信,这时可以使用一些特殊的技术,如 CORS(跨源资源共享)或 JSONP(JSON with Padding)等方法来解决同源限制的问题。此外,window.postMessage() 这个 API 也为 window 对象新增了一个 window.postMessage 方法,允许跨窗口通信,不论这两个窗口是否同源。