2009-11-03 4 views
0

У меня есть веб-сервис, запущенный в http://server/abc/service, к которому обращается Flash из другого домена. Я развернула перекрестный файл политики домена http://server/abc/crossdomain.xml и сделал нагрузки прошить с помощью:Flash crossdomain.xml в корневом каталоге

flash.system.Security.loadPolicyFile("http://server/abc/crossdomain.xml"); 

в конструкторе главного ролика. Однако при запуске Flash он запрашивает и загружает этот файл (наблюдаемый в Firebug), но затем он также запрашивает его из корня сервера (т. Е. От http://server/crossdomain.xml), которого не существует. Последующие HTTP-запросы не работают, сообщая о безопасности перекрестных доменных ошибок. Когда я помещаю файл политики в корневой каталог сервера, все работает.

Почему он запрашивает файл политики из корня, а также думает, что он загружает его из подкаталога? Почему файла политики подкаталогов недостаточно?

Следует также отметить, что оба файла политики загружаются до того, как будут отправлены HTTP-запросы любого приложения.

ответ

2

Я думаю, он должен проверить, что файл основной политики позволяет альтернативному файлу политики устанавливать разрешения.

Here's an interesting article with this little tidbit:

Если клиент получает указание использовать файл политики в другом месте, чем в основной файл политики, клиент должен сначала проверить мета-политики файл политики, чтобы определить, если исходный файл политики разрешен

+0

+1 Благодарим вас за ссылку. Должен признаться, что я не читал спецификацию файла кросс-домена. Я прочитал только флеш-помощь, о которой я думаю, не упоминает об этом. –

1

Файл политики должен находиться в корневом каталоге Web на сервере. Это означает, что кто-то, кто, возможно, контролирует подпапку на сервере, не может запустить политику, которая не поддерживается официальным сайтом (например, корневым).

Смежные вопросы