खोज…


फ्लैश से एक अनुरोध करना

Flash से बाहरी संसाधनों के लिए अनुरोध करने के लिए URLRequest और URLLoader कक्षाएं एक साथ काम करती हैं। URLRequest अनुरोध के बारे में जानकारी को परिभाषित करता है जैसे अनुरोध निकाय और अनुरोध विधि प्रकार, और URLLoader वास्तविक अनुरोध को पूरा करने के लिए इसे संदर्भित करता है और संसाधन से प्रतिक्रिया प्राप्त होने पर अधिसूचित होने का साधन प्रदान करता है।

उदाहरण:

var request:URLRequest = new URLRequest('http://stackoverflow.com');
var loader:URLLoader = new URLLoader();

loader.addEventListener(Event.COMPLETE, responseReceived);
loader.load(request);

function responseReceived(event:Event):void {
    trace(event.target.data); // or loader.data if you have reference to it in
                              // this scope.
}

आपके अनुरोध में चर जोड़ना

URLVariables वर्ग आप एक साथ भेजे जाने के लिए डेटा को परिभाषित करने की अनुमति देता है URLRequest

उदाहरण:

var variables:URLVariables = new URLVariables();

variables.prop = "hello";
variables.anotherProp = 10;

var request:URLRequest = new URLRequest('http://someservice.com');
request.data = variables;

आप या तो URLLoader माध्यम से अनुरोध भेज सकते हैं या navigateToURL लिए querystring में संलग्न चर के साथ अनुरोध URL को खोल सकते हैं।

HTTP मेथड को बदलना (GET, POST, PUT, आदि)

URLRequestMethod वर्ग में आपके द्वारा किए जाने वाले विभिन्न अनुरोध प्रकारों के लिए स्थिरांक होते हैं। ये स्थिरांक URLRequest की method गुण के लिए आवंटित किए जाने हैं:

var request:URLRequest = new URLRequest('http://someservice.com');
request.method = URLRequestMethod.POST;

ध्यान दें कि केवल GET और POST AIR रनटाइम के बाहर उपलब्ध हैं।

मेरा प्रतिक्रिया डेटा हमेशा शून्य है, "अतुल्यकालिक" का क्या मतलब है?

जब फ्लैश एक बाहरी स्रोत से डेटा के लिए अनुरोध करता है, तो वह ऑपरेशन अतुल्यकालिक है । इसका सबसे बुनियादी स्पष्टीकरण यह है कि डेटा "पृष्ठभूमि में" लोड होता है और इवेंट हैंडलर को तब ट्रिगर करता है जिसे आप Event.COMPLETE होने पर Event.COMPLETE को आवंटित करते हैं। यह आपके आवेदन के जीवनकाल में किसी भी बिंदु पर हो सकता है।

आपका डेटा आपके URLLoader पर load() कॉल load() तुरंत बाद उपलब्ध नहीं होगा । आपको Event.COMPLETE लिए ईवेंट श्रोता को संलग्न करना होगा और वहां की प्रतिक्रिया के साथ बातचीत करनी होगी

var request:URLRequest = new URLRequest('http://someservice.com');
var loader:URLLoader = new URLLoader();

loader.addEventListener(Event.COMPLETE, responseReceived);
loader.load(request);

trace(loader.data); // Will be null.

function responseReceived(event:Event):void {
    trace(loader.data); // Will be populated with the server response.
}

trace(loader.data); // Will still be null.

आप इसे किसी भी छोटी चाल के साथ प्राप्त नहीं कर सकते जैसे कि setTimeout या समान का उपयोग करना:

setTimeout(function() {
    trace(loader.data); // Will be null if the data hasn't finished loading
                        // after 1000ms (which you can't guarantee).
}, 1000);

क्रॉस-डोमेन अनुरोध

जब तक आपके डोमेन में XML क्रॉसडोमेन पॉलिसी नहीं होती है, तब तक डोमेन के रूट के अलावा फ्लैश एक डोमेन से डेटा लोड नहीं करेगा (जैसे http://somedomain.com/crossdomain.xml ) या कहीं और जो आप करते हैं Security.loadPolicyFile() साथ लक्षित कर सकते हैं। Crossdomain.xml फ़ाइल वह जगह है जहां आप उन डोमेन को निर्दिष्ट कर सकते हैं जो आपके एप्लिकेशन को फ्लैश एप्लिकेशन से डेटा के लिए पूछ सकते हैं।

सबसे अधिक पारगम्य crossdomain.xml का उदाहरण:

<?xml version="1.0" ?>
<cross-domain-policy>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

ध्यान दें कि इस उदाहरण का उपयोग उत्पादन वातावरण में नहीं किया जाना चाहिए , अधिक प्रतिबंधात्मक उदाहरण का उपयोग करें।

एक अधिक प्रतिबंधक विशिष्ट क्रॉसडोमेन.एक्सएमएल उदाहरण के लिए इस तरह दिखेगा:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only" />

    <allow-access-from domain="*.domain.com" to-ports="80,843,8011" /> 
    <allow-access-from domain="123.123.123.123" to-ports="80,843,8011" /> 
</cross-domain-policy>

संसाधन:



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow