localStorage 能获取别的网页的值吗
localStorage 能获取别的网页的值吗
取决于是否同源。
同源可以
同源(协议 + 域名 + 端口相同)的页面共享同一个 localStorage:
页面 A:https://example.com/page-a
页面 B:https://example.com/page-b
→ 同源,共享 localStorage
// 页面 A
localStorage.setItem("name", "Alice");
// 页面 B(同源)
localStorage.getItem("name"); // 'Alice' ✅ 能获取到
不同源不行
页面 A:https://example.com
页面 B:https://other.com
→ 不同源,localStorage 完全隔离
// 页面 A(example.com)
localStorage.setItem("name", "Alice");
// 页面 B(other.com)
localStorage.getItem("name"); // null ❌ 拿不到
哪些情况算不同源
https://example.com vs http://example.com → 协议不同 ❌
https://example.com vs https://api.example.com → 域名不同 ❌
https://example.com vs https://example.com:8080 → 端口不同 ❌
其他存储也是同样规则
| 存储方式 | 同源共享 | 跨域隔离 |
|---|---|---|
localStorage |
✅ | ✅ |
sessionStorage |
❌(同源但不同标签页也不共享) | ✅ |
Cookie |
可配置 domain 共享子域名 |
✅ |
sessionStorage 更严格
标签页 A:https://example.com/page-a
标签页 B:https://example.com/page-b
localStorage → 共享 ✅
sessionStorage → 不共享 ❌(每个标签页独立)
