Internet Explorer, переменные Flash POST и IFRAMES - PullRequest
0 голосов
/ 14 февраля 2012

У меня был клиент, у которого возникали странные проблемы, возникающие с флеш-объектом, встроенным в iframe, который вызывал PHP-скрипт и передавал переменные POST.

Думаю, я наконец-то примерно понялчто происходит, но был бы признателен за разъяснение о том, прав ли мой догадка.

Установка довольно сложная, поэтому, пожалуйста, потерпите меня ...

Ее веб-сайт использует одиниз тех настроек сайта, так что он немного ограничен в своих возможностях.Она хотела включить мое приложение Flash, но не смогла, поэтому в качестве обходного пути она поместила приложение Flash в другой домен, а затем встроила его с помощью iframe.

Часть того, что делает приложение Flash, - это открытиеотдельное окно, а затем вызовите скрипт PHP, передав ему переменные POST.

В Chrome, Safari и Firefox это работает.В IE все переменные POST не публикуются.

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

Это действительно сводило меня с ума, пока я не вспомнил, что здесь есть два РАЗЛИЧНЫХ домена.

Помните, как ей пришлось встраивать контент из одного домена в iframe в другой домен?

Так что я думаю, что это проблема междоменной безопасности, которая приводит к блокировке данных POST на стороне сервера.

Но тогда почему это работает в других браузерах?

Вот моя теория ...

В Chrome, Firefox и Safari браузер отправляет данные в сценарий со страницей ВНУТРИ IFrame в качестве источника.Поэтому отправитель и целевой сценарий находятся в одном и том же домене.

В IE браузер отправляет данные в сценарий со страницей CONTAINER в качестве отправителя.В этом случае отправитель и сценарий назначения находятся в разных доменах, а сервер блокирует данные.

Итак, что вы думаете?Это звучит как правильное объяснение?Это известная особенность IE?Что должен делать совместимый со стандартами браузер в этой ситуации?

ОБНОВЛЕНИЕ:

Оказывается, проблема не только в кросс-домене.Даже с содержанием iframe, поступающим с ЖЕ САМОГО сайта, это все же происходит.Только в IE, хотя.Странно, правда?

1 Ответ

0 голосов
/ 14 февраля 2012

В прошлом я работал над междоменными проблемами Flash, но не сталкивался с этим конкретным сценарием.Я не думаю, что ее конструктор сайтов разрешил бы развертывание файла междоменной политики в корне ее сайта?

Если это так, вы можете попробовать развернуть crossdomain.xml:

<cross-domain-policy>
<allow-access-from domain="*.flashfiledomain.com" secure="false"/>
</cross-domain-policy>

... в корень ее сайта и посмотреть, решит ли это проблему.Я предполагаю, что файл Flash и скрипт PHP находятся в одном домене?

...