2009-02-07 31 views
12

से ब्राउजर कुकीज एक्सेस करना मैं एक निजी vBulletin साइट के लिए फ्लेक्स विजेट बना रहा हूं, और फ्लेक्स विजेट को डेटा प्रदर्शित करने के लिए vBulletin सर्वर पर एक एक्सएमएल फ़ाइल तक पहुंचने की आवश्यकता है।फ्लेक्स

सुरक्षा कारणों से, एक्सएमएल यूआरएल को फ्लेक्स से यूआरएल अनुरोध में बीबीएसशनशैश कुकी में मूल्य की आवश्यकता होगी। फ्लेक्स विजेट उस निजी क्षेत्र में एम्बेड किया जाएगा जिसे उपयोगकर्ता ने लॉग इन किया है, इसलिए फ्लेक्स अनुरोध कुकी से उसी वेबसाइट से आ जाएगा।

क्या फ्लेक्स के भीतर सीधे कुकीज़ तक पहुंचने का कोई तरीका है? मैं जावास्क्रिप्ट से कुकी डेटा को पकड़ने के लिए बाहरी इंटरफेस का उपयोग नहीं करना चाहूंगा, क्योंकि यह थोड़ा गन्दा हो सकता है (टेम्पलेट्स पूरी तरह से अलग देव टीम द्वारा विकसित किए जाते हैं)।

उत्तर

12

मैंने कभी यह कोशिश नहीं की है, लेकिन this library बस चाल चल सकता है।

+0

यह सही है, दिलचस्प है कि यह वास्तव में बाहरी इंटरफेस का उपयोग अपने स्वयं के कुकी-रीडिंग/रैपर दस्तावेज़ में जावास्क्रिप्ट फ़ंक्शंस लिखने के लिए करता है। लेकिन हे, जब तक कि जेएस को पृष्ठ पर एम्बेड नहीं किया जाना चाहिए, यह मेरे द्वारा अच्छा है! धन्यवाद! –

2

फ्लैश या फ्लेक्स कुकीज़ के अनुसार चिंता डेवलपर साझा ऑब्जेक्ट का उपयोग कर सकते हैं जो एक प्रकार की कुकी है जो फ्लेक्स एप्लिकेशन के लिए उपयोग की जाती है।

नमूना कोड स्निपेट followes रूप

import flash.net.SharedObject; 

// get/create the shared object with a unique name. 
// If the shared object exists this grab it, if not 
// then it will create a new one 
var so: SharedObject = SharedObject.getLocal("UniqueName"); 

// the shared object has a propery named data, it's 
// an object on which you can create, read, or modify 
// properties (you can't set the data property itself!) 
// you can check to see if it already has something set 
// using hasOwnProperty, so we'll check if it has a var 
// use it if it does, or set it to a default if it doesn't 
if (so.data.hasOwnProperty("theProp")) 
{ 
    trace("already has data! It reads: " + so.data.theProp); 
} 
else 
{ 
    so.data.theProp = "default value"; 
    so.flush(); // flush saves the data 
    trace("It didn't have a value, so we set it."); 
} 
+0

साझा ऑब्जेक्ट्स वास्तव में आपके स्वास्थ्य के लिए बेहतर हैं। कुकीज़ आपको सुरक्षा त्रुटियां और क्रॉस ब्राउज़र समस्याएं देगी। यहां अच्छा उदाहरण http://livedocs.adobe.com/flex/3/html/help.html?content=lsos_5.html – MonoThreaded

1

एक्सेस करना फ्लेक्स SharedObject, ब्राउज़र कुकीज़ का उपयोग करने के ब्राउजर कुकीज, उन तक पहुंचने के रूप में ही नहीं है आप ExternalInterface वर्ग का उपयोग कर सकते हैं, तो कृपया के लिए निम्न संदर्भ जाँच है देखने के नमूने:

http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_4.html

कैसे उपयोग और JavaScript का उपयोग नियंत्रण कुकीज़ के एक संदर्भ यहां पाया जा सकता:

012,

http://www.quirksmode.org/js/cookies.html

मैं निम्नलिखित फ्लेक्स कोड का प्रयोग करेंगे:

var myCookie:String = ExternalInterface.call("getCookie('cookieName')"); 

और HTML में मैं जोड़ना होगा निम्नलिखित जावास्क्रिप्ट:

function getCookie(c_name) { 
    var i,x,y,ARRcookies=document.cookie.split(";"); 
    for (i=0;i<ARRcookies.length;i++) { 
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
    x=x.replace(/^\s+|\s+$/g,""); 
    if (x==c_name) return unescape(y); 
    } 
} 

आप और अधिक मदद की आवश्यकता है, तो आप भी जांच कर सकता है फ्लेक्स दस्तावेज।