Shinyproxy: [تقرير الشوائب] خطأ Ajax بعد الخمول لفترة طويلة مع تمكين المصادقة

تم إنشاؤها على ٢٥ مارس ٢٠١٩  ·  9تعليقات  ·  مصدر: openanalytics/shinyproxy

على سبيل المثال ، لنفترض أن لديك التطبيق البسيط أدناه. لاحظ أن جدول DT يستخدم ajax عندما server = TRUE (وضع معالجة الخادم).

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))

عند تمكين المصادقة (أي طرق مصادقة) ، تفتح المتصفح وتدخل إلى التطبيق ويعمل كل شيء بشكل جيد (مثل النقر على زر الصفحة أسفل الجدول). ومع ذلك ، بعد فترة طويلة من الخمول (30 دقيقة أو ساعة واحدة) ، انقر فوق زر الصفحة وستجد شكاوى DT عن خطأ ajax. طريقة الحل بسيطة: قم بتحديث الصفحة أو فقط افتح اتصالًا جديدًا بـ Shinyproxy وقم بإعادة تسجيل الدخول. لكنها تربك المستخدمين كثيرًا.

هذا لأنه بعد فترة طويلة من الخمول ، يطلب منك Shinyproxy إعادة تسجيل الدخول للاتصال الجديد ولكن الاتصال الحالي لا يزال صالحًا. له تأثير جانبي على أن نشر AJAX الذي يحاول التطبيق الحالي تنفيذه سيرفضه الخادم ، لأن Shinyproxy يعتبره اتصالًا جديدًا ...

أعتقد أن الطريقة لحل هذا هي

  • إما أن تفصل التطبيقات الحالية متى تطلبت إعادة تسجيل الدخول (ويعرف أيضًا باسم المهلة) ، أو
  • التعرف على اتصال AJAX الذي تم إجراؤه بواسطة التطبيق الحالي على أنه صالح / مصرح به ...

شكرا.

bug

التعليق الأكثر فائدة

shrektan لدي مشكلات مماثلة ، OpenAnalytics في إصلاح هذا:
قم بتغيير مهلة undertow (والتي تكون افتراضيًا 30 دقيقة).

server:
  servlet.session.timeout: 3600

ما يلي بالثواني - اضبطه على 0 إذا لم تقم بأي مهلة.
شكرا ديلان

ال 9 كومينتر

shrektan لدي مشكلات مماثلة ، OpenAnalytics في إصلاح هذا:
قم بتغيير مهلة undertow (والتي تكون افتراضيًا 30 دقيقة).

server:
  servlet.session.timeout: 3600

ما يلي بالثواني - اضبطه على 0 إذا لم تقم بأي مهلة.
شكرا ديلان

dylancis شكرا على الحل! مقدر!

ومع ذلك ، سأترك المشكلة مفتوحة لأن IMHO ، من الأفضل فصل التطبيق الحالي عندما تنتهي الجلسة.

dylancis راجع للشغل ، قليلا خارج الموضوع ، هل جربت الإصدار الجديد من Shinyproxy مع جداول DT؟ لم أبحث في السبب ولكني أرى أخطاء AJAX تقول أنه لا يمكن قبول طرق POST.

>

dylancis راجع للشغل ، قليلا خارج الموضوع ، هل جربت الإصدار الجديد من Shinyproxy مع جداول DT؟ لم أبحث في السبب ولكني أرى أخطاء AJAX تقول أنه لا يمكن قبول طرق POST.

oups - لا لم أفعل بعد.

بالنسبة لي أيضًا - لقد انتقلت من 2.1 إلى 2.2 والآن لا يعمل حتى renderDataTable . هناك الكثير من أخطاء AJAX التي تعيد توجيهي إلى هذه الصفحة http://datatables.net/tn/7

أعتقد أنه خطأ ... في الواقع ، افتح أدوات المطور ويمكنك رؤية استجابة طلب AJAX - لا يمكن للخادم قبول طرق POST ولكن GET على ما يرام ...

مرحبًا shrektan ، هل

dylancis قدم للتو مشكلة جديدة حول هذا الخطأ في رقم 140

كما ذكر dylancis ، فإن زيادة server.servlet.session.timeout سيؤدي إلى تجنب هذه المشكلة.
لكنني أوافق على أنه سيكون من الأفضل أن يتم تأخير مهلة الجلسة تلقائيًا طالما أن هناك قناة ويب مفتوحة (تؤدي إلى نبضات القلب وبالتالي تحافظ على الحاوية على قيد الحياة).

ملاحظة: هذا التعليق يتعلق بانتهاء صلاحية الجلسة مما أدى إلى استجابات 401 (غير مصرح بها). لا يتعلق الأمر بمشكلة ajax POST التي تؤدي إلى استجابات 405 (طريقة غير مسموح بها).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات