Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何从应用程序中访问浏览器会话/cookie_R_Cookies_Shiny - Fatal编程技术网

R 如何从应用程序中访问浏览器会话/cookie

R 如何从应用程序中访问浏览器会话/cookie,r,cookies,shiny,R,Cookies,Shiny,如何从一个闪亮的应用程序中访问cookie和其他与浏览器相关的会话数据 使用,我们可以获得其他客户端详细信息,如主机、端口、查询参数 有没有其他方法可以在shiny app中获取cookie?要基于这些好的评论,您可以使用js.cookie.js包和shiny.OnInputChange()函数返回cookie 下面是一个示例应用程序: --用户界面-- ) --服务器.r-- 您可以在javascript端获取它,并使用Shiny.onInputChange将其传递回ShinyIs没有java

如何从一个闪亮的应用程序中访问cookie和其他与浏览器相关的会话数据

使用,我们可以获得其他客户端详细信息,如主机、端口、查询参数


有没有其他方法可以在shiny app中获取cookie?

要基于这些好的评论,您可以使用js.cookie.js包和shiny.OnInputChange()函数返回cookie

下面是一个示例应用程序:

--用户界面--

)

--服务器.r--


您可以在javascript端获取它,并使用
Shiny.onInputChange
将其传递回ShinyIs没有javascript是不可能的吗?也许,但据我所知,这可能会有所帮助:
session$request$HTTP\u COOKIE
。正如@daatali所说,shinny有一些功能:js到服务器:
shinny.onInputChange(id,data)
;服务器到js:
会话$sendCustomMessage(id,数据)
;js处理程序:
shinny.addCustomMessageHandler(id,函数)
<代码>闪亮服务器似乎删除了一些http头。这不是一个好主意,
会话$request$HTTP\u COOKIE
将为空。请问您是否可以在闪亮的应用程序启动后立即捕获cookies,而无需单击按钮?谢谢
library(shiny)
library(shinydashboard)

fluidPage(
tags$head(tags$script(src="js.cookie.js")),
# a shiny element to display unformatted text
box(title ="click the gray square to view cookies!",    verbatimTextOutput("results"),actionButton("go","click me")),

# javascript code to send data to shiny server
tags$script('
          document.getElementById("go").onclick = function() {
          var number = Math.random();

          Cookies.set(\'name\', \'value\', { expires: 7 });
          Cookies.set(\'cookie_2\', \'value\', { expires: 7 });

          var my_cookie = Cookies.get(); 

          Shiny.onInputChange("mydata", my_cookie);
          };
          ')
library(shiny)

shinyServer(function(input, output,session) {
output$results = renderPrint({
input$mydata
})

})