在 Shiny 中获取响应头变量
Posted
技术标签:
【中文标题】在 Shiny 中获取响应头变量【英文标题】:get response header variable in Shiny 【发布时间】:2017-07-15 12:56:21 【问题描述】:我的 apache 将 LDAP 登录信息传递给标头中的变量 X-Remote-User:
但我不知道如何在 Shiny 应用程序中获取它。有任何想法吗?也许解决方案可能是一些 java 脚本?
【问题讨论】:
【参考方案1】:好的,我解决了。首先包含在ui.R
js函数中:
www/js/getLogin.js
:
function requestLogin()
var client = new XMLHttpRequest();
client.open("GET", "yourshinyhostname", true);
client.send();
client.onreadystatechange = function()
var resposne = client.getResponseHeader("X-Remote-User");
Shiny.onInputChange("getLogin", resposne);
;
然后您可以通过单击按钮获取 X-Remote-User 值:
ui.R
:
includeScript("www/js/getLogin.js"),
uiOutput("login_btn"),
verbatimTextOutput("text")
server.R
:
output$login_btn <- renderUI(
HREF <- sprintf('
<button id="get_login_btn" value="test" onclick="requestLogin();" >
<font color="black">
<i class="fa fa-user"></i> Get login
</font>
</button>
')
html(HREF)
)
jsOutput <- reactive(
input$getLogin
)
output$text <- renderPrint(
jsOutput()
)
【讨论】:
有没有办法做同样的事情,但不需要用户点击? @wdkrnls 你可以试试gist.github.com/Tazovsky/3e1b68a7fe14dc242b4a85549b2575f2 这样的东西,但我不确定它是否会起作用。 谢谢,但到目前为止还没有运气。我什至尝试添加一个 Shiny.setInputValue("getUsername", response);没有成功。 @Taz: 什么是 'www/js/getLogin.js' ?我应该写一个单独的js文件吗? @maniA 是以function requestLogin() ...
开头的JS脚本【参考方案2】:
在 server.R 中添加对 js 函数的调用。这将在不单击按钮的情况下获取标题。例如:
output$text <- renderPrint(
js$requestLogin()
jsOutput()
)
【讨论】:
以上是关于在 Shiny 中获取响应头变量的主要内容,如果未能解决你的问题,请参考以下文章