Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   удаленный вызов api (http://www.flasher.ru/forum/showthread.php?t=135040)

footman 14.01.2010 17:22

удаленный вызов api
 
голову себе уже сломал. походу упускаю какую-ту незначительную деталь.

тестирую api на локальном сервере

main.mxml
VkontakteAPI отвечает за вызов api, генерирует запросы, сигнатуру и т.п. 100% работает.

Код AS3:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" backgroundColor="0xFFFFFF" creationComplete="onCC()">
        <mx:Script>
                <![CDATA[
                        import mx.controls.Alert;
                        import vkontakte.VkontakteAPI;
 
                        private function onCC():void
                        {
                                VkontakteAPI.makeRequest('getProfiles', onGetProfiles, 'uids=1');
                        }
 
                        private function onGetProfiles():void
                        {
                                Alert.show('!');
                        }
                ]]>
        </mx:Script>
        <mx:Button label="Sample button" />       
</mx:Application>

в корне localhost лежит crossdomain.xml
Код AS3:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
        <allow-access-from domain="*" />
</cross-domain-policy>

но запросы к api не проходят. если просто вбить запрос в строку браузера, то все ок. из приложения никак.

Ошибка:
Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: http://localhost//ServerTest.swf не может загрузить данные из http://api.vkontakte.ru/api.php?...б...т-запрос-к-апи

need help

vasya87 14.01.2010 18:39

мб в <allow-access-from domain="*" /> номера портов дописать

etc 14.01.2010 18:45

Домен api.vkontakte.ru не давал разрешения домену localhost на загрузку данных. А дал он разрешения следующим доменам: http://api.vkontakte.ru/crossdomain.xml

footman 14.01.2010 18:57

то есть потестить апи локально без загрузки приложения на сервер не получится?

etc 14.01.2010 18:59

Ну тестируйте локально, только в Flash IDE или standalone-плеере (если под Flex).

footman 14.01.2010 19:23

что-то я не понимаю.
croosdomain.xml определяет на какие сервера приложение может посылать запросы. Соответственно, если в корне моего локального сервера лежит xml, разрешающий посылать запросы ко всем серверам без исключения, то и запросы к апи вконтакте должны проходить. Разве не так?

За совет про standalone без сервера спасибо. Там действительно все работает.

etc 14.01.2010 19:28

Нет, не так. Если поразмыслить логически, то тогда и смысла в этом самом crossdomain нет, если вы сами себе что-то разрешаете.

Даже по названиям тегов в нём можно понять, что речь идёт о разрешении указанным доменам подключаться к текущему, т. е. на котором размещен этот самый crossdomain.xml. Непонятно, с чего вы вообще взяли, что механизм работает наоборот.


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

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