Гибкая проблема с загрузкой файлов на сервер текст = Ошибка # 2049: нарушение безопасной среды

#apache-flex #actionscript-3

#apache-гибкая #actionscript-3

Вопрос:

Я пытаюсь загрузить файлы из браузера клиента на сервер с помощью Flex . Для этого я использовал класс FileReference для вызова сервлета, который выполняет загрузку. Ниже приведен код для функции uploadHandler.

 private function uploadHandler(event:Event):void
            {
                var url:String="http://localhost/upload/WelcomeServlet";
                var request:URLRequest=new URLRequest(url);
                request.method=URLRequestMethod.POST;
                var variables:URLVariables=new URLVariables();
                variables.employeeID="sam";
                request.data=variables;             
                file.upload(request);
            }
  

Поскольку URLRequest выполняет http-запрос, я добавил файл сетевой политики crossdomain.xml в корневой папке моего сервера tomcat.ниже приведен xml

 <?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="All"/>
    <allow-access-from domain="*"  secure="false" />
</cross-domain-policy>
  

Все еще я получаю приведенную ниже ошибку при попытке загрузить файл :

 Error #2044: Unhandled SecurityErrorEvent:. text=Error #2049: Security sandbox violation: http://mysite.com/upload/upload.swf cannot upload data to http://localhost/upload/WelcomeServlet.
    at upload/creationCompleteHandler()[C:UsersDocumentsFlex Builder 3uploadsrcupload.mxml:22]
    at upload/___upload_Application1_creationComplete()[C:UsersDocumentsFlex Builder 3uploadsrcupload.mxml:4]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:9298]
    at mx.core::UIComponent/set initialized()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:1169]
    at mx.managers::LayoutManager/doPhasedInstantiation()[C:autobuild3.2.0frameworksprojectsframeworksrcmxmanagersLayoutManager.as:718]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:8628]
    at mx.core::UIComponent/callLaterDispatcher()[C:autobuild3.2.0frameworksprojectsframeworksrcmxcoreUIComponent.as:8568]
  

это отлично работает, когда я пытаюсь загрузить с локального хостинга. Нужно ли добавлять какие-либо дополнительные аргументы компилятора? я использую flash Player 10 и apache tomcat 6.0.20. Эта ошибка беспокоит меня уже давно, был бы признателен за любую помощь

Спасибо sanre6

Ответ №1:

Почему бы не изменить эту строку:

 var url:String="http://localhost/upload/WelcomeServlet";
  

Для:

 var url:String="/WelcomeServlet";
  

?

Комментарии:

1. Вау, это сработало полностью. Почему это не позволяет использовать localhost / servlet? если только его домен / сервлет