你能从javascript中读取flash吗?

时间:2012-01-23 08:43:46

标签: java javascript playframework

Play flash是一种“临时存储机制,在下次请求期间保留”,使用Cookie。

是否可以从javascript中读取闪存?

我想实现通用的客户端通知机制,并且还要从服务器访问该机制。我想象的是任何控制器都可以做到:

flash.put("notification", "You have been notified");

然后我的main.js检查“通知”闪存是否存在,以及它是否显示在上面(类似于Stack Overflow的通知机制)。

但是,我怀疑闪存可能以客户端无法读取的方式加密。我没有找到任何代码示例,显示如何从客户端JS(而不是在模板中)读取它。这可能直接吗?

当我写这个问题时,我实际上想出了一种方法来实现这个:我可以在主模板中放置一个隐藏的div,我的所有视图都会扩展,并从JS访问该div。是否有意义?有更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

我认为即使通过cookie也可以使用JavaScript来读取flash。该cookie实际上是使用application.conf中配置的安全种子(application.secret)加密的。

然而,可以实现您想要的。

  1. 创建一个标签,将Flash变量导出到Javascript对象中。
  2. 在您的视图中调用该标记。
  3. 你的main.js使用那个暴露的变量做任何想做的事。

答案 1 :(得分:0)

对我来说,你有两个解决方案

  1. 在你的视图中调用一个带有值作为参数的javascript函数,然后在javascript中,你可以将它存储在一个对象中供以后使用
  2. Flash Cookie未加密,是签名,因此您可以阅读但无法修改。使用像firebug这样的工具来查看flash cookie的内容