Разработка входа, не работающего в IE через iframe

#ruby-on-rails-3 #iframe #devise

#ruby-on-rails-3 #iframe #разработка

Вопрос:

Я не вижу никаких сообщений об ошибках в файле журнала, и на экране нет сообщения. Вход в мое приложение Rails 3, поскольку оно отображается в iframe с другого сайта, приводит к возврату на основной сайт без входа пользователя в систему.

Похоже, что приложение Rails не распознает cookie через iframe. Кто-нибудь еще сталкивался с этой проблемой? Куда я мог бы пойти, чтобы узнать, в чем ошибка?

Пожалуйста, обратите внимание, что это происходит только в IE версии 8 (возможно, это происходит в 7 и 6, еще не тестировал).

Комментарии:

1. Я бы рекомендовал использовать всплывающее окно или отдельный экран. Смотрите мой комментарий ниже.

Ответ №1:

Джеймс прав, IE имеет некоторую защиту, предотвращающую создание iFrames файлов cookie. Это легко исправить, просто включите следующий заголовок ответа в свой контроллер:

 response.headers['P3P'] = 'CP="NON DSP COR CURa IVAa IVDa CONa OUR NOR STA"'
  

Источник:http://adamyoung.net/IE-Blocking-iFrame-Cookies

Ответ №2:

У меня были похожие проблемы с IE 6 и 7 и с разработкой с iframes. Насколько я понимаю, это как-то связано с тем, что сеансы не передаются через iframes в IE. Согласно тому, что я смог найти, IE предотвращает это в целях безопасности.

Я не уверен, почему это кажется проблемой безопасности только в IE, а не в других браузерах.

Комментарии:

1. Да, это «функция» безопасности, и она, скорее всего, повлияет на IE 7/8, но не на IE 6. В прошлом я делал некоторые действительно сумасшедшие вещи, чтобы обойти это для других целей.