0

我正在尝试检查是否定义了变量,如果是,则运行 ajax 请求...如果不是,我希望将用户重定向到设置变量的单独页面。

例如我想要这样的东西:

    // if variable is undefined
    if (typeof accessKey === 'undefined') {
        alert('the variable is not set!');
    } else {
            var accessKey = 'some random string generated from google';
                    alert('the variable is set!');
                    proceed to refresh the page and run through check again.
    }

因此,第一次运行页面时,它会检查变量是否已设置。如果未设置变量,它将设置变量,然后重新加载页面并再次运行检查。

问题是 'accessKey' 总是返回未定义的,但代码会像定义变量一样运行。为什么?

4

2 回答 2

4

如果未设置变量,它将设置变量,然后重新加载页面 [强调我的]并再次运行检查

您的问题是:变量(或任何其他 js 代码)在页面重新加载之间不会持续存在。

如果你需要持久化的东西,你必须使用以下之一:

  • 服务器端会话或数据库(使用 ajax 将数据传递到服务器并在那里持久化)
  • 客户端存储(例如localStorage)。
  • Cookies(可以在客户端或服务器端生成)
于 2013-09-12T19:34:59.610 回答
0

将值保存在隐藏字段或 cookie 中。

于 2013-09-12T19:42:00.370 回答