|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 02.09.15]
Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
|
SecurityError`ы при загрузке swf с другого сервера
Всем добрый день. При использовании АПИ Вконтакте столкнулся с новой для меня проблемой, хотелось бы узнать как её решили те кто разбираются лучше меня.
Проблема в следующем. У меня есть swf, получающий данные с вконтакта, а затем основываясь на полученных данных делает запрос к стороннему серверу и получает данные оттуда. Если залить этот swf на вконтакте и запускать оттуда, то все работает как надо. Но ввиду того, что файл весит больше 1 мб, я решил загружать его через прелоудер. Написал свой прелоудер, протестировал, работает тоже как надо. Далее заливаю прелоудер на вконтакте, и он загружает описанный выше swf-файл с удаленного сервера. В прелоудере прописал Security.allowDomain("адрес сервера"), так как загружаемый swf-файл обращается к сцене. Теперь вроде бы все должно работать, но не работает. Security Error (номер не помню) и пишет, что загружаемый swf-файл не может сделать запрос к АПИ вконтакте. В корень удаленного сервера закинул кроссдомейн, но все равно не помогает. Вот код запроса из загружаемого swf-файла. private function loadDataFromVK():void { var loader1:URLLoader = new URLLoader(); var variablesToSend:URLVariables = new URLVariables(); var viewerID:String = root.loaderInfo.parameters.viewer_id; var apiID:String = "1715580"; var secretKey:String = "csu8CqrlFD"; var methodFromAPI:String = "getProfiles"; variablesToSend.api_id = apiID; variablesToSend.sig = MD5.hash(viewerID + 'api_id=' + apiID + 'fields=first_name,last_name,sex' + 'method=' + methodFromAPI + 'uids=' + viewerID + 'v=2.0' + secretKey); variablesToSend.v = "2.0"; variablesToSend.fields = "first_name,last_name,sex"; variablesToSend.uids = viewerID; variablesToSend.method = methodFromAPI; loader1.addEventListener(Event.COMPLETE, onLoadDataFromVK); uId = viewerID; CommonFunctions.sendData(variablesToSend, loader1, "http://api.vkontakte.ru/api.php"); }; |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Грузите второй swf в изолированную среду загружающего (того, который на ВКонтакте находится).
Цитата:
|
|
|||||
[+1 02.09.15]
Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
|
вы имеете ввиду в ихний флэш-контейнер? Если нет, то можно поподробнее пожалуйсто, ато даже представления не имею.
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
SecurityDomain#currentDomain
|
|
|||||
[+1 02.09.15]
Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
|
Это надо в кроссдомейне прописывать или в коде? Попробовал воспользоваться поиском и не нашел, как этим пользоваться...
Если вас не затруднить, можно еще более подробней? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
[+1 02.09.15]
Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
|
Большое спасибо за Ваши советы, обязательно попробую когда опять доберусь до флэша, надеюсь поможет. Если что отпишусь
|
|
|||||
Регистрация: Apr 2010
Сообщений: 3
|
Простите за тупость но что нужно еще прописать во флеше или на сервере, что бы заработал этот прелоадер(((
public function preload():void { var context:LoaderContext = new LoaderContext(); context.securityDomain = SecurityDomain.currentDomain; context.applicationDomain = ApplicationDomain.currentDomain; var urlReq:URLRequest = new URLRequest("http://[domain]/1.swf"); var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,done); ldr.load(urlReq,context); } private function done(e:Event):void { var container=e.target.content; addChildAt(container,0); allert_area.text="complete"; } При компиляции пишет SecurityError: Error #2142: Нарушение изолированной среды: локальные SWF-файлы не могут использовать свойство LoaderContext.securityDomain. Помогите пожалуйста, буду ооочень признателен |
|
|||||
[+1 02.09.15]
Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
|
Cвойство LoaderContext.securityDomain можно использовать только если вы выложили свф на домен. Если тестите приложение с рабочего стола, надо просто:
|
|
|||||
Регистрация: Apr 2010
Сообщений: 3
|
В том то и дело... Загружаемое приложение лежит на сторонем сервере http://[domain]/1.swf
Прописал контекст для лоадера, прописал аллоуДомаин в загружаемой флешке... и ничего не происходит(( Если пытаюсь протестировать при компиляции выдает SecurityError: Error #2142: Если просто компилю выкладываю на 3й сервер, просто черный экран... По событиям отследил, что срабатывает Ивент.Опен ... Так же к серверу где лежит загружаемая флешка идет обращение на кроссдомаин и больше ничего((( |
Часовой пояс GMT +4, время: 15:02. |
|
« Предыдущая тема | Следующая тема » |
|
|