Показать сообщение отдельно
Старый 14.04.2011, 14:49
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned

Регистрация: 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 минуты
Блин. Дело в кэше фаерфокса. Все хелпы перерыл, а оказалось все было нормально, просто грузился старый файл...