Angenommen, Sie haben die folgende einfache App. Beachten Sie, dass die DT-Tabelle Ajax verwendet, wenn server = TRUE
(der Server-Verarbeitungsmodus) verwendet wird.
library(shiny)
ui <- fluidPage(DT::DTOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDT(iris, server = TRUE)
}
runApp(list(ui = ui, server = server))
Wenn die Authentifizierung aktiviert ist (beliebige Authentifizierungsmethoden), öffnen Sie den Browser und rufen die App auf und alles funktioniert einwandfrei (z. B. Klicken Sie auf die SeitenschaltflĂ€che unter der Tabelle). Wenn Sie jedoch nach langer Zeit im Leerlauf (30 Minuten oder 1 Stunde) auf die SeitenschaltflĂ€che klicken, finden Sie DT-Beschwerden den Ajax-Fehler. Die Lösung ist einfach: Aktualisieren Sie die Seite oder öffnen Sie einfach eine neue Verbindung zu Shinyproxy und fĂŒhren Sie die erneute Anmeldung durch. Aber es verwirrt die Benutzer sehr.
Dies liegt daran, dass Shinyproxy nach lĂ€ngerer InaktivitĂ€t eine erneute Anmeldung fĂŒr die neue Verbindung erfordert, die bestehende Verbindung jedoch weiterhin gĂŒltig ist. Es hat den Nebeneffekt, dass das AJAX-Posting, das die vorhandene App versucht durchzufĂŒhren, vom Server abgelehnt wird, da Shinyproxy es als neue Verbindung betrachtet ...
Der Weg, dies zu lösen, ist meiner Meinung nach
Vielen Dank.
@shrektan Ich hatte Àhnliche Probleme und OpenAnalytics
half mir, dies zu beheben:
Ăndern Sie das undertow
Timeout (das standardmĂ€Ăig 30 Minuten betrĂ€gt).
server:
servlet.session.timeout: 3600
Die folgenden sind in Sekunden - setzen Sie es auf 0
wenn Sie keine ZeitĂŒberschreitung haben.
Danke, Dylan
@dylancis Danke fĂŒr die
Ich lasse das Problem jedoch offen, da es IMHO besser ist, die vorhandene App zu trennen, wenn die Sitzung abgelaufen ist.
@dylancis Ăbrigens , etwas abseits vom Thema, hast du die neue Version von Shinyproxy mit DT-Tabellen ausprobiert? Ich habe die Ursache nicht untersucht, aber ich sehe die AJAX-Fehler, die besagen, dass POST-Methoden nicht akzeptiert werden können.
>
@dylancis Ăbrigens , etwas abseits vom Thema, hast du die neue Version von Shinyproxy mit DT-Tabellen ausprobiert? Ich habe die Ursache nicht untersucht, aber ich sehe die AJAX-Fehler, die besagen, dass POST-Methoden nicht akzeptiert werden können.
oups - nein habe ich noch nicht.
Auch fĂŒr mich - ich bin von 2.1 auf 2.2 umgestiegen und jetzt funktioniert nicht einmal ein einziges renderDataTable
. Viele AJAX-Fehler, die mich auf diese Seite umleiten http://datatables.net/tn/7
Ich glaube, es ist ein Fehler ... Ăffnen Sie eigentlich die Entwicklertools und Sie können die Antwort der AJAX-Anfrage sehen - POST-Methoden können vom Server nicht akzeptiert werden, aber GET ist in Ordnung ...
Hallo @shrektan, hast du dieses Aprikosenproblem ĂŒber DT
@dylancis Habe gerade ein neues Problem zu diesem Fehler unter #140 eingereicht
Wie @dylancis erwÀhnt, wird dieses Problem durch Erhöhen von server.servlet.session.timeout
vermieden .
Aber ich stimme zu, dass es besser wÀre, wenn das Session-Timeout automatisch verzögert wird, solange ein offener Websocket-Kanal vorhanden ist (der Heartbeat auslöst und somit den Container am Leben hÀlt).
Hinweis: Dieser Kommentar bezieht sich auf den Ablauf der Sitzung, der zu 401 (nicht autorisierten) Antworten fĂŒhrt. Es geht nicht um das Ajax-POST-Problem, das zu 405 Antworten (Methode nicht zulĂ€ssig) fĂŒhrt.
Hilfreichster Kommentar
@shrektan Ich hatte Àhnliche Probleme und
OpenAnalytics
half mir, dies zu beheben:Ăndern Sie das
undertow
Timeout (das standardmĂ€Ăig 30 Minuten betrĂ€gt).Die folgenden sind in Sekunden - setzen Sie es auf
0
wenn Sie keine ZeitĂŒberschreitung haben.Danke, Dylan