Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.04.2011, 14:49
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
По умолчанию Опять кроссдоменник. Проблема с URLLoader

Получаю необходимые данные от контакта и перенаправляю на свой сервак.
Вот метод делающий запрос к серверу:
Код AS3:
private function getBalance():void {
	if (!this._auth_key || !this._viewer_id) return; 
 
	var request:URLRequest = new URLRequest(Globals.FUNDS_URL);
	request.method = URLRequestMethod.POST;
	var variables:URLVariables = new URLVariables();
	variables.auth_key = this._auth_key;
	variables.viewer_id = this._viewer_id;
	request.data = variables;
 
	var loader:URLLoader = new URLLoader();
	loader.dataFormat = URLLoaderDataFormat.VARIABLES;
	loader.addEventListener(Event.COMPLETE, onBalanceReturn, false, 0, true);
	try {
		loader.load(request);
	} catch (e:Error) {
		trace(e.message);
	}
}
Все просто.
Но при запуске из контакте, выдает такую ошибку:
Цитата:
Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: http://cs5699.vkontakte.ru/u5495786/...bc49.zip?_stV= не может загрузить данные из http://warfarex.com/funds.php.
at vk::KontaktConnector/getBalance()[C:\Users\Konstantin\Flash\WarfareX\src\vk\KontaktConnector.as:66]
at vk::KontaktConnector()[C:\Users\Konstantin\Flash\WarfareX\src\vk\KontaktConnector.as:51]
at Setup/begin()[C:\Users\Konstantin\Flash\WarfareX\src\Setup.as:51]
at Setup()[C:\Users\Konstantin\Flash\WarfareX\src\Setup.as:35]
Суть понятна, нет разрешения. Но как его сделать? В корень сервера warfarex.com положил кроссдоменник, разрешающий доступ с любых доменов. Результат нулевой.
В конструкторе главного класса написал это:
Код AS3:
Security.allowDomain("warfarex.com");
Security.loadPolicyFile(Globals.ROOT_URL + "crossdomain.xml");
Так же результат нулевой.

Раньше при загрузке другой swf использовал контекст загрузки:
Код AS3:
var context:LoaderContext = new LoaderContext();
if (Security.sandboxType != 'localTrusted') context.securityDomain = SecurityDomain.currentDomain;
 
context.applicationDomain = ApplicationDomain.currentDomain;
и добавлял его как параметр к методу load() класса Loader. Но у URLLoader.load() такого параметра нет.

Как обойти эту проблему?

Добавлено через 24 минуты
Блин. Дело в кэше фаерфокса. Все хелпы перерыл, а оказалось все было нормально, просто грузился старый файл...

Старый 14.04.2011, 23:09
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 2  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Кэш во время отладки может довести человека до нервного срыва)

Советую на время отладки к параметрам запроса отправлять еще случайный параметр, дабы получить уникальный URL

Код AS3:
..
variables['rnd'] = new Date().getTime();
request.data = variables;
И еще: по-моему, метод
Код AS3:
Security.allowDomain("warfarex.com");
должен вызываться для загружаемого объекта, чтобы допустить его загрузку с другого домена, соответственно его вызов из конструктора главного класса объекта, который собирается что-либо в себя загружать, бесполезен.


Последний раз редактировалось carrotoff; 14.04.2011 в 23:20.
Старый 15.04.2011, 07:17
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
должен вызываться для загружаемого объекта, чтобы допустить его загрузку с другого домена, соответственно его вызов из конструктора главного класса объекта, который собирается что-либо в себя загружать, бесполезен.
Знаю, но это было уже на грани взрыва мозга, так сказать, а вдруг

Старый 15.04.2011, 11:05
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 4  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Очень знакомые симптомы) я и говорю, что кэш во время отладки может свести человека с ума)

Старый 15.04.2011, 18:36
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 5  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Мне вот этот вариант понравился больше - (http://www.flasher.ru/forum/showthread.php?p=800092)
crossdomain будет работать только если приложение лежит на сервере ВК. Для iFrame ВК должен дать разрешение на доступ к контенту, для этого в crossdomain.xml должен быть прописан ВАШ сервер , а этого ВК делать не будет. Читайте ссылу - там все подробно описано. Другого пути как бы нет. (точнее есть - через ПХП сохранять пикчер к себе на сервак и потом его грузить - но это ИМХО - маразм.

Старый 15.04.2011, 18:40
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Да читал я это уже давно ) Заведомо неудачное решение. Дыру залатают, прийдется переписвать кучу кода. И не важно кому какой вариант больше нравится
Цитата:
crossdomain будет работать только если приложение лежит на сервере ВК
У меня приложение лежит на собственном серваке. В контакте только загрузчик, и все работает

Старый 15.04.2011, 20:09
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 7  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Это и называется - на сервере ВК.
А загрузчик или все приложение - разницы ноль. как пеерведут все приложения на iFrame - прийдется переписать кучу кода. 8-)
И будет не важно, что вам это было удобно. А дыру если не залатали за сколько лет - то вряд-ли залатают.

Старый 15.04.2011, 20:12
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 8  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Тема исчерпана. Хватит офтопить тут.
Цитата:
как пеерведут все приложения на iFrame
этого точно не будет.

Старый 27.05.2011, 23:19
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 9  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Блин, сейчас проверял работу в разных браузерах, и батц - та же проблема! чуть с ума не сошел, не понимал откуда секьюрити эррор!

Вспомнил, эту тему, посмотрел браузер (Firefox detected), открыл хромом, всё ок!
Лиса закэшировала старый(!!!) кроссдоменник!

Вот беда-перда! за что так firefox издевается над нами?)
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.