javascript - EXTJS 4-वैश्विक अपवाद श्रोता




extjs4 extjs-mvc (4)

मुझे सच में यकीन नहीं है कि क्या यह सभी AJAX अनुरोधों को पकड़ लेगा लेकिन यह मानते हुए कि आप सर्वर के साथ सभी संचार के लिए अजाक्सप्रॉक्स का उपयोग कर रहे हैं, इसे काम करना चाहिए: Ext.Ajax सिंगलटन में 'requestexception' ईवेंट को संभालें

Ext.Ajax.on('requestexception', function(conn, response, options, eOpts) {
    //your error handling here
});

मैंने कोशिश नहीं की है लेकिन यदि आप करते हैं, तो क्या आप यहां एक अपडेट पोस्ट कर सकते हैं?

मेरे पास एक ऐसी स्थिति है जहां मैं विभिन्न gridpanel आदि से सर्वर पर ajax अनुरोध कर रहा हूं। एक व्यवस्थापक क्षेत्र में।

यदि उपयोगकर्ता के लिए कोई गतिविधि नहीं है तो लॉग इन उपयोगकर्ता लॉग आउट हो जाएगा। 5 मिनट जो सामान्य है।

इस मामले में सर्वर लॉगिन पृष्ठ पर रीडायरेक्ट 403 वापस भेजता है।

अभी मैं एक डालने जा रहा हूँ:

listeners: {
    exception: function(proxy, response, operation, eOpts) {
        if (response.status == '403')
            window.location = 'login';
    }
}

प्रत्येक store's प्रॉक्सी जो थोड़ी अधिक है।

क्या कोई दयालु हो सकता है और मुझे बता सकता है कि मैं ExtJS और सर्वर के बीच सभी संचारों में श्रोता कैसे जोड़ सकता हूं?

मैं एमवीसी एप्लीकेशन आर्किटेक्चर का उपयोग कर रहा हूं, इसलिए यह शायद controller.js या app.js में एक लाइनर हो सकता है।

धन्यवाद


अपने ऐप की शुरुआत में निम्नलिखित स्निपेट डालें। इस हर प्रतिक्रिया के साथ, चाहे वह किसी स्टोर या किसी फॉर्म या ... से है, चेक किया जाएगा और लॉगिन पेज पर रीडायरेक्ट किया जाएगा।

Ext.Ajax.on('requestexception', function (conn, response, options) {
    if (response.status === 403) {
        window.location = 'login';
    }
});

एक और पूरा समाधान, जिसमें यह एक पकड़ होगा-यह सब है:

Ext.util.Observable.observe(Ext.data.Connection, {
    requestexception: function(conn, response, options) {
        if(response.status == '403')
            window.location = 'login';
    }
});

ऐसा इसलिए है क्योंकि अंतर्निहित वर्ग, Ext.data.Connection न केवल Ext.data.Connection में उपयोग किया जाता है, साथ ही Ext.data.Proxy जिसे Ext.data.Store, Ext.data.Model द्वारा उपयोग किया जाता है। यह store.load() और store.load() जैसी कॉलों पर अपवादों को संभालता है। यह एक अधिक पूर्ण पकड़-सभी हैंडलर होना चाहिए।

मेरे ब्लॉग पोस्ट में और विवरण देखें






javascript extjs extjs4 extjs-mvc