मेरे पास एक छोटा क्लाइंट/सर्वर परीक्षण एप्लिकेशन है जहां मेरे पास एक फ्लेक्स ऐप है जो सर्वर ऐप का HTTP अनुरोध करता है। सर्वर ऐप मेरी स्थानीय मशीन पर चल रही एक स्क्रिप्ट है, पोर्ट 8001 पर सुन रहा है। क्लाइंट एक एसएफएफ है जिसे मैं स्थानीय रूप से चला रहा हूं, और पृष्ठ अनुरोध करने के लिए mx.rpc.http.HTTPService
का उपयोग करता है।फ्लैश एक crossdomain.xml फ़ाइल की मांग क्यों कर रहा है जब .swf और http लक्ष्य दोनों स्थानीयहोस्ट पर हैं?
HTTPService नीचे प्रति के रूप में स्थापित किया जा रहा है: जब मैं एक बुनियादी पृष्ठ अनुरोध, अपने सर्वर अनुप्रयोग पहले एक "GET /crossdomain.xml HTTP/1.1"
अनुरोध है, जो के बाद से मैं एक crossdomain नहीं है विफल हो रहा है प्राप्त कर रहा है बनाने के
_HttpService = new HTTPService();
_HttpService.url = "http://localhost:8001";
_HttpService.contentType = "text/xml";
जगह में .xml फ़ाइल। मेरे पास एक जगह नहीं है क्योंकि यह सब मेरी स्थानीय मशीन (अभी के लिए) पर हो रहा है और मुझे एक की आवश्यकता नहीं है (मुझे नहीं लगता)।
जब मैं फ्लेक्स 3.x का उपयोग कर रहा था तो मुझे निश्चित रूप से crossdomain.xml के बिना यह कोड काम कर रहा था। मैंने सोचा कि मैं फ्लेक्स 4 के साथ भी काम कर रहा था। अब मैं फ्लेक्स 4.5 का उपयोग कर रहा हूँ। सुरक्षा नीति में बदलाव के कारण संभवतः यहां कोई समस्या है?
स्थानीयहोस्ट पर यह सब हो रहा है, फ्लैश प्लेयर crossdomain.xml फ़ाइल का अनुरोध क्यों कर रहा है?
मामले में यह मदद करता है में, विशिष्ट गलती मेरी AsyncResponder वापस है हो रही है:
[FaultEvent fault=[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"] messageId="F43DCBFF-E99A-99CC-57D8-535C13C7CD48" type="fault" bubbles=false cancelable=true eventPhase=2]
धन्यवाद! मुझे यह देखने की आवश्यकता होगी कि फ्लैश कैसे समान-मूल परीक्षण करता है। अधिक विशिष्ट होने के लिए, मेरा "सर्वर" एक xmlrpc सर्वर है जो परिवहन के लिए HTTP का उपयोग करता है। यह इस समय जीईटी अनुरोधों को संभाल नहीं करता है, हालांकि मैं निश्चित रूप से इसे मजबूर कर सकता हूं। फ्लैश कंटेंट का स्रोत आईडीई द्वारा उत्पन्न एक स्थानीय फाइल है जिसे मैं फिलहाल उपयोग कर रहा हूं (विजुअल स्टूडियो के लिए एमेथिस्ट प्लगइन)। – Russ
अपने स्वयं के xmlrpc सर्वर को रोल करना मजेदार लगता है, हालांकि आपको किसी भी अतिरिक्त बारीकियों का समर्थन करना होगा फ्लैश आपको फेंकता है ... जैसे crossdomain.xml के लिए प्राप्त करें।मैं अपने कार्यान्वयन के बारे में सुनिश्चित नहीं कर रहा हूँ, लेकिन यह इसके लायक एक मौजूदा वेब ढेर लाभ और फिर xmlrpc उपयोग करने के बजाय एक सरल वेब सेवा बनाने की जांच के लिए हो सकता है। आप सी # उपयोग कर रहे हैं/एमएस, ढेर सादे पुराने एक्सएमएल साथ WCF बाकी बाहर की जाँच - देखें: [कड़ी] (http://www.michaelckennedy.net/blog/2009/03/24/RESTfulWebServicesWithWCFScreencast.aspx) – mrdc
+1 । एमआरडीसी सही है। क्रॉसडोमेन नीतियों को अनदेखा करने के लिए डोमेन * और * पोर्ट को समान होना चाहिए। यदि पोर्ट वेबसर्वर से अलग है, तो यह crossdomain.xml की तलाश करेगा। सबसे आसान तरीका है (glassfish या बिल्ला की तरह अगर जावा/नेट का प्रयोग करके) इस काम के पाने के लिए यदि कोई अनुप्रयोग कंटेनर में अपने सर्वर के लिए या जो भी वेब सर्वर सर्वर साइड पटकथा भाषा (PHP, ASP, आदि) को सर्व करने की उपयोग। सभी के लिए यह बहुत आसान है सिर्फ एक सर्वर के साथ किया है। –