Обнаружить запрос iframe в приложении rails - PullRequest
5 голосов
/ 02 августа 2011

У меня есть инструмент iFrame, который должен отображаться в другом формате, чем моя страница.Поэтому я хочу обнаруживать запросы от iFrame так же, как я могу обнаружить их с iPhone.Возможно ли это?

Есть ли в заголовке запроса специальный совет, который я мог бы использовать, или я мог бы ввести его вручную?

Спасибо Маркус

Ответы [ 2 ]

10 голосов
/ 03 августа 2011

Когда вы получаете запрос от iPhone, вам будет отправлено «User Agent» - строка типа Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 в переменной request.user_agent.Поиск в этой строке для iPhone может сказать, что iPhone посещает вашу страницу.

iframe - это тег HTML для включения других страниц на вашу страницу (например, кнопка «Нравится» в Facebook).использует это).Это не имеет ничего общего с конкретным браузером, все современные браузеры поддерживают это.Вы не можете сказать на стороне сервера, была ли ваша страница вызвана в iframe или нет.Вы можете использовать JavaScript в клиенте, чтобы узнать, находится ли ваша текущая страница в пределах iframe, а затем отправить уведомление на сервер.

Лучше всего добавить в ваш запрос другой параметр, например ?iframe=1, и использовать этот параметр в вашем контроллере.

1 голос
/ 09 октября 2018

Хорошей практикой является добавление субдомена для ваших вложений. Затем вы можете отправлять запросы на поддомен и оценивать request.host. Это также позволяет разделить логику в контроллерах / представлениях при использовании нескольких поддоменов.

Пример:

1008 * плавающий фрейм *

  • <iframe src="embed-subdomain.domain.com" /> вместо <iframe src="domain.com" />

Контроллер

  • iframe = request.host.include?("embed-subdomain.domain")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...