Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   ошибка crossdomain в Vkontakte (http://www.flasher.ru/forum/showthread.php?t=137514)

Azo 15.03.2010 18:02

ошибка crossdomain в Vkontakte
 
Помогите разобраться.

на моем серваке, данные грузятся все ОК.
а после загрузки приложения в Вконтакт, там выдает ошибку мол надо FLASH SECURITY ERROR !

Security.loadPolicyFile("http://**.com/crossdomain.xml")

там

<cross-domain-policy>
<allow-access-from domain="*"/>
<site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>

ovechkin 25.03.2010 02:00

У меня такая же ошибка.
http://vkontakte.ru/pages.php?id=4143397
здесь написано:
Цитата:

Убедитесь, что на вашем сервере присутствует файл crossdomain.xml
В большинстве случаев, достаточно создать в корневой директории сервера файл crossdomain.xml с содержимым:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vk.com" to-ports="80"/>
</cross-domain-policy>
Что такое корневая директория сервера?
У меня freebsd.
Использую в качестве сервера apache tomcat.
Запросы идут по http://mysite.com/myapp/
Значит надо чтобы файл crossdomain.xml находился в корне myapp, т.е. к нему можно было обратиться по http://mysite.com/myapp/crossdomain.xml

Пробовал этот вариант. Пробовал файл записывать в корень (на диск). Не помогает.
Кто поможет?

Bgg 25.03.2010 03:29

Цитата:

Сообщение от ovechkin (Сообщение 895492)
Использую в качестве сервера apache tomcat.
Пробовал этот вариант. Пробовал файл записывать в корень (на диск). Не помогает.
Кто поможет?

В ROOT положите файл
Код:

\Tomcat 6.0\webapps\ROOT\

ovechkin 25.03.2010 12:27

Цитата:

Сообщение от Bgg (Сообщение 895495)
В ROOT положите файл
Код:

\Tomcat 6.0\webapps\ROOT\

Не помогло.
Вообще не думаю, что нужно класть его в ROOT.
Потому как использую я url вида : http://www.mysite.com:8080/myapp/getData
а не http://www.mysite.com:8080/getData

где getData - это маппинг на сервлет.

Добавлено через 6 минут
Вообще, какой смысл этого файла?
Флэш приложение перед тем как вызвать http://www.mysite.com:8080/myapp/getData
вызывает http://www.mysite.com:8080/myapp/crossdomain.xml и определяет - если там присутствует сайт в контакте, то разрешает посылать запросы.
Я правильно понял?

Bgg 25.03.2010 13:36

Цитата:

Сообщение от ovechkin (Сообщение 895530)
Не помогло.
Вообще не думаю, что нужно класть его в ROOT.
Потому как использую я url вида : http://www.mysite.com:8080/myapp/getData
а не http://www.mysite.com:8080/getData

Точно не скажу в чем дело, т.к. сам с томкатом на "вы", но с подобным web.xml кроссдоменник отдается нормально.
Код:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>app</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

Соотвественно приложение висит на http://www.mysite.com:8080/app

ovechkin 25.03.2010 17:03

Bgg, а в файловой системе где находится ваше приложение?

Bgg 25.03.2010 18:04

Ну у меня дома на моем тестовом сервере(win7, apache) тут :)
Код:

C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps
На рабочем стоит Debian, и доступа ко всей файловой системе не имею, только к папке томката, и на нем я тоже crossdomain.xml ложил в ROOT.

Вы обращаетесь к контейнеру сервлетов Tomcat, и он лучше знает где искать файлы политик безопасности. Возможно у вас какие то определенные настройки сервера, либо что то не то написано в web.xml. Спросите на javatalks.ru, там быстрее ответят.

ovechkin 25.03.2010 18:47

Цитата:

Сообщение от Bgg (Сообщение 895633)

Вы обращаетесь к контейнеру сервлетов Tomcat, и он лучше знает где искать файлы политик безопасности.

Не думаю, что доступ к xml файлу (в нашем случае к crossdomain.xml) связан с безопасностью. Ведь по прямой ссылке удаётся его посмотреть.

Цитата:

Сообщение от Bgg (Сообщение 895633)
Возможно у вас какие то определенные настройки сервера, либо что то не то написано в web.xml.

В web.xml определяются сервлеты, маппинг, значения всяких variables... не то...
Ладно, сегодня попробую один вариант - нашёл на индийском сайте :)
Отпишусь.

Добавлено через 1 час 53 минуты
Здесь :http://www.mail-archive.com/flexcode.../msg43475.html
Написано :
Цитата:

For example if the webapp on the machine externally appears to be at http://servername.com but is really at http://servername.com/webappfoldername/ then you could put the crossdomain.xml file inside webappfoldername. Basically, the crossdomain file must always look to the outside world like it is at the root level of the destination computer domain name. It must be accessible by going http://servername.com/crossdomain.xml.
Вобщем, переписал содержимое своего приложения в папку ROOT
И также туда файл crossdomains.xml
Всё заработало.
Спасибо за помощь!

mikhailk 28.03.2010 11:20

Цитата:

Вообще, какой смысл этого файла?
Флэш приложение перед тем как вызвать http://www.mysite.com:8080/myapp/getData
вызывает http://www.mysite.com:8080/myapp/crossdomain.xml и определяет - если там присутствует сайт в контакте, то разрешает посылать запросы.
Я правильно понял?
Флэш будет искать его по адресу http://www.mysite.com:8080.
В остальном - да.

ovechkin 30.03.2010 18:22

Цитата:

Сообщение от mikhailk (Сообщение 896312)
Флэш будет искать его по адресу http://www.mysite.com:8080.
В остальном - да.

Тогда ещё один вопрос открытый:
Допустим, у меня есть хостинг. Мой сервлет замаппирован на ссылку такую - http://www.hosting.com/ovechkin/getData

Куда в этом случае выкладывать crossdomain.xml? :)
врятли хостер выложит его себе в корень... :confused:


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

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