添加键值以在gsp中映射

时间:2017-09-14 12:38:36

标签: grails gsp

这是我的地图“$ {session.sessionDataMap}”。我想将函数生成的客户端令牌添加到此映射中。

function clientTokenGeneration() {

  var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "/v1.0/braintree/clienttoken", false);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader('Authorization',"${session.sessionDataMap.Access_Token}");
    xhttp.send();
    var response = JSON.parse(xhttp.responseText);
sessionDataMap.put("clienttoken",response.token); //how can i achieve this i n gsp
}

如何在gsp中添加地图中的键值

1 个答案:

答案 0 :(得分:0)

您可以实现所需内容的一种方法是在控制器中执行如下操作:

YourController {

    //...

    def ajax_setClientToken() {
        session.clienttoken = params.token
    }

    //...
}

在.gsp文件中,在您给定的JavaScript函数clientTokenGeneration中,您可以调用此操作:

function clientTokenGeneration() {

  var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "/v1.0/braintree/clienttoken", false);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader('Authorization',"${session.sessionDataMap.Access_Token}");
    xhttp.send();
    var response = JSON.parse(xhttp.responseText);

    xhttp.open("POST", "/ajax_setClientToken?token="response.token, true);
    xhttp.send();
}

但是,或者,看起来您正在服务器端进行客户端令牌生成。在这种情况下,您可能最好将session.clienttoken = <new token>添加到正在创建令牌的方法中。