Еще один вопрос crosdomain.xml или: «Как правильно интерпретировать документацию» - PullRequest
1 голос
/ 09 апреля 2010

Я много читал о новой политике-политике флеш-плеера, а также знаю основной файл политики. Теперь представьте следующую ситуацию: Есть два сервера со службами (http), работающими на пользовательских портах

  • servera.com: 2222 / websiteA
  • serverb.com: 3333 / websiteB

Теперь я открываю swf с сервера a (например, servera.com:2222/websiteA/A.swf), который хочет получить доступ к службе serverb. Конечно, мне нужен файл crossdomain.xml в нужном месте, и возможны несколько вариантов. Я не хочу использовать основной файл политики, поскольку у меня может не быть контроля над корнем обоих серверов.

Одно решение, которое я нашел, работает со следующим междоменным доменом:

<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>

подается в serverb.com:3333/websiteB/crossdomain.xml

Итак, теперь мой вопрос: Можно ли избавиться от "*" и использовать правильное (не такое общее, как *) имя домена в правиле allow-access-from? Все мои попытки потерпели неудачу, и, насколько я понимаю, это возможно.

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Попробуйте:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
    <allow-access-from domain="*.servera.com" to-ports="3333"/>
</cross-domain-policy>

(возможно, вам также потребуется указать порт для домена from - мне давно не приходилось иметь дело с кросс-доменом и портами.

0 голосов
/ 09 апреля 2010

Будьте очень осторожны с файлами междоменных политик. Если вы используете cookie-аутентификацию или если serverb.com находится во внутренней сети, вам не следует использовать междоменную политику. В качестве альтернативы вы можете использовать прокси на servera.com, который передает запросы на serverb.com. Это позволит избежать междоменного запроса.

Вы также должны настроить ведение журнала, используя файл mm.cfg, содержащий:

ErrorReportingEnable=1
TraceOutputFileEnable=1
PolicyFileLog=1
PolicyFileLogAppend=1

Это будет записывать ошибки в текстовый файл. Проверьте больше подробностей о настройке файла mm.cfg .

...