我将尝试使用iframe(实际上,我正在使用xauth库,网址为http://xauth.org/info/)在另一个域上存储值。然而,当我尝试使用Chrome存储任何内容时,它会返回“QUOTA_EXCEEDED_ERR:DOM异常22”,这是一种访问错误。我已经模拟了下面的几个非常简单的页面来复制这种效果:
文件1.html:
如果我把它们都放在我的本地服务器上,并访问localhost/1.html,它会嵌入一个来自127.0.0.1的框架(Chrome认为这是一个单独的域),我会得到与上面相同的访问错误。 大概看起来,尽管我从另一个域嵌入了iframe,并且该iframe内部的脚本正确引用了该域的localStorage(因为我可以看到console.log(localStorage)行),但写入localStorage的权限来自顶层页面的域。
简而言之,似乎没有任何iframe可以在Chrome中写入localStorage。 有人知道是否有办法绕过这个特定的安全“功能”吗? 还是我做错了什么?
文件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。 有人知道是否有办法绕过这个特定的安全“功能”吗? 还是我做错了什么?