2009-05-02 9 views
8

मैं अपनी साइट के किसी अन्य सबडोमेन पर किसी एप्लिकेशन के लॉगिन फॉर्म पर पोस्ट करने का प्रयास कर रहा हूं। यह एक तृतीय पक्ष ऐप है कि मेरे पास स्रोत पहुंच नहीं है।क्या रीडायरेक्ट के बाद क्रॉस-डोमेन iframe का नया URL खोजना संभव है?

मुझे पता है कि आप same origin policy की वजह से क्रॉस-डोमेन आईफ़्रेम की अधिकांश सुविधाओं तक नहीं पहुंच सकते हैं। मुझे बस इतना एक्सेस करने की ज़रूरत है, हालांकि, वह यूआरएल है जिसे आईफ्रेम के भीतर रीडायरेक्ट किया गया है (जावास्क्रिप्ट के माध्यम से)। इसमें एक सत्र टोकन है जिसे मैं पास करना चाहता हूं।

ऐसा लगता है कि कुछ ऐसा होने की अनुमति है जो सुरक्षित होने के लिए पर्याप्त हो सकता है, लेकिन मुझे अभी तक ऐसा करने का कोई तरीका नहीं मिला है। मैं jQuery का उपयोग कर रहा हूं, और मैंने $('iframe').contents() को आजमाया है, लेकिन मुझे लगता है कि उस ऑब्जेक्ट पर कोई अनुमति नहीं है। मैंने $('iframe').attr('src') भी चेक किया है, लेकिन यह प्री-रीडायरेक्ट यूआरएल के रूप में बना हुआ है। क्या कोई और तरीका है?

+0

वास्तव में ऐसा लगता है कि यह असंभव है। – Jerph

उत्तर

11

नहीं, आपके पास किसी भी गुणों को iframe के भीतर पहुंच नहीं है। आपके पास केवल बाहरी स्थिति और स्टाइल गुणों तक पहुंच है।

यही कारण है कि फ्रेम काम करने के लिए इस तरह के दर्द हैं। मैं आमतौर पर केवल उनका उपयोग करता हूं अगर मुझे परवाह नहीं है कि उनके भीतर क्या किया जाता है।

क्या आप सर्वर-साइड प्रमाणीकरण और टोकन पास नहीं कर सकते हैं? क्लाइंट प्रमाणीकरण करने के बजाय, क्या आप इसे अपने सर्वर पर नहीं कर सकते? HTTP अनुरोध बनाने और प्रतिक्रिया को पार्स करने के लिए आपको कुछ अतिरिक्त कार्य करने की आवश्यकता हो सकती है, लेकिन आप किसी भी आईफ्रेम मुद्दों से बचें।

नीचे की रेखा आईफ्रेम शायद प्रमाणीकरण जैसी महत्वपूर्ण चीजों के लिए भरोसा करने के लिए सबसे अच्छा नहीं है (विशेष रूप से जब यह क्रॉस-ब्राउज़र कार्यक्षमता की बात आती है)।

2

इस example (विधि 2) को आजमाएं जिसमें लेखक पहले डोमेन के अंदर एक और आईफ्रेम सेट करता है, मूल डोमेन पर एक पृष्ठ लोड करता है। आंतरिक पृष्ठ को बाहरी माता-पिता पर जावास्क्रिप्ट को कॉल करने की अनुमति है, क्योंकि वे एक ही डोमेन में लोड होते हैं। उचित पैरामीटर के साथ आंतरिक पृष्ठ को लोड करें, जिसे माता-पिता को पास किया जा सकता है।

संबंधित मुद्दे