![]() |
|
||||||||||
|
|||||
|
[+1 08.07.09]
Регистрация: Mar 2009
Сообщений: 107
|
Доброго времени суток.
Делаю приложение для вконтакте.ру. Столкнулся с проблемой при обращении к собственному серверу, в лоадере срабатывает событие SecurityErrorEvent.SECURITY_ERROR, может кто то с таким уже сталкивался подскажите как можно во флешьке настроить безопасность чтобы в приложениях в контакте можно было свободно обращаться к своему серверу? Добавлено через 3 минуты вот класс который я использую для конекта, самое интересное что с моего компа все нормально работает, а если добавляю флешьку в приложения вконтакте, то срабатывает это событие dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);. package { import flash.display.Sprite; import flash.events.*; import flash.net.*; import flash.text.*; public class URLLoader_loadExample extends Sprite { private var xmlTextField:TextField = new TextField(); public function URLLoader_loadExample() { xmlTextField.text = "Loading."; var loader:URLLoader = new URLLoader(); configureListeners(loader); var request:URLRequest = new URLRequest("http://www.server.ru/game/1.php"); try { loader.load(request); } catch (error:Error) { xmlTextField.text = "Unable to load requested document."; } xmlTextField.x = 10; xmlTextField.y = 10; xmlTextField.background = true; xmlTextField.autoSize = TextFieldAutoSize.LEFT; addChild(xmlTextField); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); xmlTextField.text = "completeHandler: " + loader.data; var vars:URLVariables = new URLVariables(loader.data); xmlTextField.text = "The var=status is " + vars.status; } private function openHandler(event:Event):void { xmlTextField.text = "openHandler:" + event; } private function progressHandler(event:ProgressEvent):void { xmlTextField.text = "progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal; } private function securityErrorHandler(event:SecurityErrorEvent):void { xmlTextField.text = "securityErrorHandler: " + event; } private function httpStatusHandler(event:HTTPStatusEvent):void { xmlTextField.text = "httpStatusHandler: " + event; } private function ioErrorHandler(event:IOErrorEvent):void { xmlTextField.text = "ioErrorHandler: " + event; } } } |
|
|||||
|
стервочка (я мужик)
|
поиск на этом форуме не выключали. я думаю вопрос поднимался не одну сотню раз.
а вообще crossdomain. |
|
|||||
|
[+1 08.07.09]
Регистрация: Mar 2009
Сообщений: 107
|
Цитата:
я считаю это бред какой-то! |
|
|||||
|
Цитата:
![]()
__________________
Дело не в тебе |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Приложение где лежит? Если на доменах vkontakte, то это вам нужно на своём сайте размещать кроссдоменник, с разрешением подключаться с доменов vkontakte. И вообще, что-то я сомневаюсь, что сей момент был пропущен в документации к API.
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 4
|
Здравствуйте! Я столкнулась с аналогичной проблемой.
Мне нужно чтобы форма обратной связи работала как приложение для в контакте. В самом флеше следующий код: Security.loadPolicyFile("http://site.ru/folder/crossdomain.xml");
submitButton.addEventListener(MouseEvent.MOUSE_UP , sendForm);
function sendForm(event:MouseEvent):void {
if ( emailBox.text.indexOf("@" ) == -1 || emailBox.text.indexOf("." ) == -1 ) {
submitMessages.text = "Пожалуйста, введите свой e-mail";
} else if (instBox.text == "" ) {
submitMessages.text = "Пожалуйста, введите название института";
} else {
submitToPHP();
}
}
function submitToPHP() {
var variables:URLVariables = new URLVariables();
var request:URLRequest = new URLRequest();
request.url="http://site.ru/folder/sendform.php";
request.method=URLRequestMethod.GET;
request.data=variables;
variables.name_text=nameBox.text;
variables.inst_text=instBox.text;
variables.email_text=emailBox.text;
var loader:URLLoader = new URLLoader();
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeHandler );
try {
loader.load(request);
submitMessages.text="Отправка письма...";
} catch (error:Error) {
trace(error.message);
submitMessages.text="Невозможно отправить";
}
function completeHandler(event:Event):void {
trace(event.target.data.successMessage);
submitMessages.text=event.target.data.successMessage;
so.clear();
nameBox.text="";
instBox.text="";
emailBox.text="";
}
}
<?xml version="1.0"?> <!-- http://site.ru/folder/crossdomain.xml --> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> вобщем не работает. Подскажите, пожалуйста, в чем ошибка. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Так какая ошибка? SecurityError?
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 4
|
чесно говоря не знаю, просто сообщение не отправляется с контакта, OUTPUT не знаю как посмотреть, когда флешка загружена как приложение.
при запуске на локальной машине никаких ошибок не выдает, спокойно отправляет письма и они доходят. могу исходники выложить Последний раз редактировалось Nyra; 22.05.2009 в 21:02. |
|
|||||
|
была такая же проблема с получением loader.content.
решение - использовать LoaderContext |
|
|||||
|
никак не могу подцепить кроссдомен !... наверно делаю что то неверно! помогите
public function start():void{ //политика безопастности Security.loadPolicyFile("http://localhost/crossdoamin.xml"); Security.allowDomain("http://localhost"); cfgXML = new XML(); var loader:URLLoader = new URLLoader(); configureListeners(loader); loader.load(new URLRequest("http://localhost/cfg.xml")); } не работает и все тут .... как не крутись файл лежит в домене к примеру nethost и с локалхоста берет XML ,.... если запустить из под флеша работает как тока через браузер .... фигвам! |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|