jquery - 在grails中从jquery动态获取 session 变量

标签 jquery grails gsp

我正在尝试从jquery动态访问 session 变量。

这工作
console.log(“$ {session.application?.sideNavOptions [0]}”);;

但是我需要做这样的事情。

var application = $(“#app”)。html();
console.log(“$ {session。” + application +“?. sideNavOptions [0]}”);

可能吗?

提前致谢

最佳答案

您正在尝试以一种行不通的方式在此处混合服务器和客户端(如我的评论中所述)。这是另一种选择。

创建一个简单的 Controller ,您可以将ajax请求传递给特定的 session 变量。 Controller 可能看起来像这样

package com.example

import grails.converters.JSON

class MySimpleController {
  def gimmieValue() {
     String value = session["${param.key}"] as String
     render [result: value] as JSON
  }
}

该 Controller 基本上采用一个称为“键”的参数,并将返回使用该键存储在 session 中的任何内容。生成的JSON对象的值在属性'result'下。

使用此 Controller 的客户端代码可能如下所示:
$.ajax({
  dataType: "json",
  url: "${createLink(controller: 'mySimple', action: 'gimmieValue')}",
  data: { key: "the-key-from-the-session-you-want" },
  success: function(data) {
    console.log("The server says that the value is: " + data.result);
  }
}

这是一个非常简单的示例,您应该理解,您实际上是在通过该 Controller 打开整个 session 存储。这构成了安全威胁。我建议您锁定 Controller 中可以返回和不能返回的键,而不是仅允许任何键(如我所示)。

假设您也在客户端使用jQuery。希望这可以帮助。

关于jquery - 在grails中从jquery动态获取 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480535/

相关文章:

jquery - 隐藏的 jQuery header

javascript - 重新创建jQuery的slideUp和slideDown,但是改为slideRight和slideLeft?

grails - 我是否需要在grails中实现CRUD方法?

tomcat - Grails:部署 WAR 后未触发 Quartz 作业

grails - 嵌套引号 : a message tag inside a javascript fragment inside of an actionsubmit tag

javascript - 使用 javascript 控制 .mov (<object>) 文件?

javascript - 如何从搜索按钮触发 AJAX

Grails 单向多对多

grails - GSP:检查模型(变量)是否为空不工作

list - Grails在GSP( View )中更新列表,然后单击按钮提交