Получение данных из скрипта PHP. Скрипт на другом сервере.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
hlamovnic
Сообщения: 5
Зарегистрирован: 24 фев 2011, 15:17

Получение данных из скрипта PHP. Скрипт на другом сервере.

Сообщение hlamovnic »

Всем привет.
Подскажите, пожалуйста.

Есть скрипт get.php. Он расположен на левом хостинге, т.е. не там где выполняется флешка.

Код: Выделить всё

 <?   print "res=46";?> 
Есть флешка в которой происходить получение данных из скрипта get.php.
Расположена локально или как приложение ВКонтакте. В "Publish Settings" в "Local playback security" стоит "Access network only".

Код: Выделить всё

         public var request:URLRequest;        public var loader:URLLoader;         public function ExchangeSQL(myUrl:String, command:String, ComleteLoad:Function)        {            var variables:URLVariables = new URLVariables("do=Get");            request = new URLRequest();            request.url = "http://левый хостинг/getUser.php";            request.method = URLRequestMethod.POST;            request.data = variables;             loader = new URLLoader();            loader.dataFormat = URLLoaderDataFormat.VARIABLES;            loader.addEventListener(Event.COMPLETE, ComleteLoad);        }         function Load():void        {            //Security.loadPolicyFile("http://api.vkontakte.ru/crossdomain.xml");            Security.loadPolicyFile("http://левый хостинг/crossdomain.xml");            loader.load(request);         }         function ComleteLoad(e:Event):void        {            trace(e.target.data.res);                        tx_scor.text = e.target.data.res;        } 
Trace выводит undefined и значение tx_scor.tex = undefined.
Но если в отладке посмотреть значение переменной e.target.data.res, то видно что там "46", как и должно быть.
Никаких ошибок не выдает.

Не понимаю что не так, подскажите как быть.

Текст моего crossdomain.xml, проверил и вконтактовский, результат тот же.

Код: Выделить всё

 <?xml version="1.0"?> <cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-http-request-headers-from domain="*" headers="*"/>  <allow-access-from domain="*" to-ports="80" /> </cross-domain-policy> 
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Получение данных из скрипта PHP. Скрипт на другом сервере.

Сообщение Александр »

Попробуй

Код: Выделить всё

<cross-domain-policy><allow-access-from domain="*.vkontakte.ru" /><allow-access-from domain="*.vk.com" /></cross-domain-policy>
"Левый хостинг" - это твой хостинг?
hlamovnic
Сообщения: 5
Зарегистрирован: 24 фев 2011, 15:17

Re: Получение данных из скрипта PHP. Скрипт на другом сервере.

Сообщение hlamovnic »

Привет, Александр.

Пробовал такой crossdomain, результат тот же. Т.е. никакой.

Да, хостинг мой.
hlamovnic
Сообщения: 5
Зарегистрирован: 24 фев 2011, 15:17

Re: Получение данных из скрипта PHP. Скрипт на другом сервере.

Сообщение hlamovnic »

Пробую разные варианты, и вот что вышло:

В режиме URLLoaderDataFormat.TEXT, вместо URLLoaderDataFormat.VARIABLES.
Переменная e.target.data содержит "res=46". trace никаких undefined не выводит и в поле tx_scor.text присваивается значение "res=46".
Т.е. все работает.

Но как добиться, чтобы получать значение переменных по их именам. Т.к. совсем не удобно получать строку и от туда вычленять кучу переменных, которые планируются.
hlamovnic
Сообщения: 5
Зарегистрирован: 24 фев 2011, 15:17

Re: Получение данных из скрипта PHP. Скрипт на другом сервере.

Сообщение hlamovnic »

Все братцы, я понял в чем был косяк.

По какой-то причине мой php скрип возвращает не "res=46", а "%0Ares=46".
Поэтому обращение к e.target.data.res не было правильным, такой переменной не было.
Ответить