Javascript未在R应用程序中从浏览器检索cookie
我试图在一个闪亮的应用程序中从用户的浏览器中检索cookie,为不同的用户生成不同的UI。为了使用cookie sin R Shinny,我遵循并使用以下javascript代码扩展了shinyjs:Javascript未在R应用程序中从浏览器检索cookie,javascript,r,cookies,shiny,shinyjs,Javascript,R,Cookies,Shiny,Shinyjs,我试图在一个闪亮的应用程序中从用户的浏览器中检索cookie,为不同的用户生成不同的UI。为了使用cookie sin R Shinny,我遵循并使用以下javascript代码扩展了shinyjs: shinyjs.getcookie = function(params) { var cookie = Cookies.get("id"); if (typeof cookie !== "undefined") { Shiny.onInputChange("jsco
shinyjs.getcookie = function(params) {
var cookie = Cookies.get("id");
if (typeof cookie !== "undefined") {
Shiny.onInputChange("jscookie", cookie);
} else {
var cookie = "";
Shiny.onInputChange("jscookie", cookie);
}
}
shinyjs.setcookie = function(params) {
Cookies.set("id", escape(params), {
expires: 0.5
});
Shiny.onInputChange("jscookie", params);
}
shinyjs.rmcookie = function(params) {
Cookies.remove("id");
Shiny.onInputChange("jscookie", "");
}
我还尝试在一个R模块中设置和获取cookie,这可能很重要
我可以在模块内设置cookie,我可以在浏览器中验证这一点;然而,当我尝试获取cookie时,我总是得到NULL
我这样调用server.R中的模块:
user_auth_return <- observe({
callModule(
user_auth_module,
"user_auth"
)
})
输入正确的密码后:
[1] "5"
[1] "6"
[1] "setting cookie"
[1] "7"
[1] "user"
NULL
[1] "database"
[1] "cookie123"
[1] "4"
感谢您的帮助
编辑:
此后,我发现我可以使用以下代码从server.R检索cookie:
observe({
js$getcookie()
print("server cookie")
print(input$jscookie)
})
因为我仍然无法使用模块中的相同代码访问cookie,所以我认为我已经将问题缩小到变量input$jscookie
。与在闪亮的服务器上相比,在闪亮的模块中我是否需要以不同的方式获取该值
[1] "5"
[1] "6"
[1] "setting cookie"
[1] "7"
[1] "user"
NULL
[1] "database"
[1] "cookie123"
[1] "4"
observe({
js$getcookie()
print("server cookie")
print(input$jscookie)
})