我正在尝试使用 iframe 将值存储在另一个域上(实际上,我使用的是http://xauth.org/info/上的 xauth 库)。但是,当我尝试使用 Chrome 存储任何内容时,它会返回“QUOTA_EXCEEDED_ERR: DOM Exception 22”,我认为这是访问错误。我在下面模拟了几个非常简单的页面来复制效果:
文件 1.html:
<html>
<head/>
<iframe src='http://127.0.0.1/2.html' />
</html>
文件 2.html:
<html>
<head/>
<script>
console.log(localStorage);
localStorage.setItem('test', '123');
</script>
</html>
如果我将这两个都放在我的本地服务器上并访问 localhost/1.html 它会嵌入一个来自 127.0.0.1 的框架(Chrome 认为它是一个单独的域),我会得到与上面相同的访问错误。猜测一下,即使我从另一个域嵌入了 iframe,并且 iframe 中的脚本正确引用了该域的 localStorage(正如我在 console.log(localStorage) 行中看到的那样),权限用于写入 localStorage 的内容来自首页的域。
简而言之,看起来没有 iframe 可以写入 Chrome 中的 localStorage。有谁知道是否有办法绕过这个特定的安全“功能”?还是我做错了什么?