在Shiny中获取响应头变量

时间:2017-02-24 15:53:58

标签: javascript apache ldap shiny shiny-server

我的apache将LDAP登录传递给标题中的变量 X-Remote-User

enter image description here

但我不知道如何在Shiny应用程序中获取它。有任何想法吗?也许解决方案可能是一些java脚本?

2 个答案:

答案 0 :(得分:2)

好的,我解决了。首先包含在ui.R 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()
})

答案 1 :(得分:0)

在server.R中添加对js函数的调用。这将在不单击按钮的情况下获取标题。例如:

output$text <- renderPrint({ 
  js$requestLogin()
  jsOutput()
})