gpt4 book ai didi

php - HTML5 localStorage & 同源策略 : sometimes it works, 有时它不会

转载 作者:行者123 更新时间:2023-12-02 18:47:33 26 4
gpt4 key购买 nike

我有一个托管一些 .html 文件的服务器(实际上都是 .php,但客户端只能看到 html)。当用户输入 page1.html 时,有一个按钮可以转到 page2.html。该按钮具有 href="page2.html"和 rel="external"。其他 4 个页面也是如此。

我的 localStorage 停留在页面 1,2 和 3 之间,但不在页面 4 和 5 之间。另外,如果在页面内打开弹出窗口(我使用 jquery mobile 的弹出窗口),则在弹出窗口打开时运行的任何 javascript 我总是得到未定义本地存储条目的值。 Google Chrome 的元素检查器-->资源在弹出窗口打开时显示值,但 JavaScript 警报给出未定义。

那么:什么可能导致这种情况?我很高兴“same origin policy ”适用(全部以 http://www.example.com/ 开头),但一定有什么原因导致其他页面没有 localStorage。

这是我的大多数页面开头的 php 代码:

<?php
$userid = mysqli_real_escape_string($connection, $_GET['userid']);
echo "<script>localStorage.userid = $userid;</script>";

$keyword = mysqli_real_escape_string($connection, $_GET['keyword']);
echo "<script>localStorage.keyword = $keyword;</script>";
?>

然后我还设置了进入下一页的 href 的按钮以包含相同的 php 查询字符串,以便下一页获得相同的变量。当然,如果 localStorage 正常工作并且我可以从它们中获取值(并稍后对它们执行某些操作),则这不是必需的。我使用 Google Chrome 的元素检查器来查看每个页面在本地存储中的内容。

最佳答案

我滥用了 phph 和 localStorage 的组合。我有时会输入以下内容(省略 php echo):

localStorage.keyword = $keyword;

但它应该用引号引起来:

localStorage.keyword = '$keyword';

这解释了某些仅包含未定义条目的页面中的随机行为。

关于php - HTML5 localStorage & 同源策略 : sometimes it works, 有时它不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16205711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com