Failed to read the ‘localStorage‘ property from ‘Window‘

本文探讨了浏览器中localStorage的使用规则,包括同源策略对其的影响。在相同协议、主机名和端口的域名下,localStorage可以共享,但不同域名则无法互相访问。特别指出,本地文件(File协议)和在iframe/webview中的页面由于缺乏明确域名,可能导致访问被拒绝的错误。了解这些限制对于跨域应用和存储策略的制定至关重要。
摘要由CSDN通过智能技术生成
"Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.",

在这里插入图片描述
首先梳理一下Storage的使用规则

localStorage需要在相同协议+相同主机名+相同端口,也可以说是在同一域名下使用。
sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。

经过测试,得出以下结论

  • 本地打开的页面(File://协议下的),会公用一个localStorage,比如F盘打开了一个页面,存储一些key-value,C盘打开的页面也可以访问到。
  • 同一域名下的可以互相访问,比如http://aaa.com/a/a_1.html添加的,在http://aaa.com/b/b_1.html下也可以访问。
  • 不同域名下不可互相访问,比如http://aaa.com/a/a_1.html 和 http://bbb.com/b/b_1.html就不能互相访问
  • 利用模板字符串直接塞到iframe/webview(原生提供的容器)里的,其实是没有域名的,就会导致这个错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值