Я сталкиваюсь с некоторыми очень странными вещами относительно фреймов и интернет-исследователей.Рамки + особенности Internet Explorer
Ситуация такова:
- У меня есть веб-приложение на www.webapp.com
- У меня есть клиент, который хочет, чтобы окно входа в мой www.webapp.com на его сайт: www.vendor.com
- Поставщик его веб-сайта настраивается его веб-дизайнером по адресу www.vendor.com. Он состоит из 2-х кадров:
- Первый кадр охватывает 100% ширину и высоту, и это место находится в www.webdedesigner.com/clients/vendor
- Второй кадр охватывает 0,0 и не указывает ни на что
Окно входа в систему на удаленном сайте указывает на мое веб-приложение. И сообщения login + имя пользователя и т. Д. Причина, по которой сайт клиента настроен с использованием фреймов, заключается в том, что панель URL-адресов браузера всегда хранится на веб-сайте www.vendor.com. (Фу, даже не заводи меня).
Проблема заключается в том, что я вхожу с сайта www.vendor.com в мое веб-приложение, и мое веб-приложение загружается во фрейм, и все мои CSS и Javascript не загружаются.
Это происходит только в IE7/8, я протестировал его в Firefox, Chrome, Opera и Safari, и каждый из них загружает мои файлы CSS и JS на нем.
Это как мой заголовок выглядит следующим образом:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="nl" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<title>My Webapp</title>
<meta http-equiv="Content-Type" content="text/html" />
<link rel="icon" href="/img/favicon.ico" />
<link rel="shortcut icon" href="/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/css/css.php?css=public" />
<script type="text/javascript" src="/js/js.php?js=public"></script>
</head>
<body>
Я заподозрить IE не обрабатывает relatie URL, в CSS/JS правильно ...
Там есть еще более странная вещь ! Если я очистил свой кеш-браузер IE, и сначала я заберусь на сайт www.webapp.com через этот домен, а затем выйдите из системы и зарегистрируйтесь через www.vendor.com в IE, CSS/JS загрузится! Что за...? Мой весь webapp находится на HTTPS, поэтому он не должен кэшировать какие-либо ресурсы ...
Я взволнован, поэтому прибегаю к размещению здесь. Кто-нибудь знает, что случилось?
Редактировать
Хорошо, после того, как я установил правильный инструмент отладки для Internet Explorer (вместо по умолчанию один), я был в состоянии проверять заголовки HTTP неоспоримым послал.Так что я по сравнению IE и Firefox, и эти результаты обнаружились:
IE запрос Войти после моей веб-приложение
(Request-Line):POST /?portal&returnurl=www.vendor.com HTTP/1.1
Accept:application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip, deflate
Host:www.webapp.nl
Content-Length:40
Connection:Keep-Alive
Cache-Control:no-cache
IE Response
(Status-Line):HTTP/1.1 200 OK
Date:Wed, 14 Jul 2010 10:35:34 GMT
Server:Apache
X-Powered-By:PHP/5.1.6
**Set-Cookie:PHPSESSID=uiluornfipr2dk294iro09tgg6; path=/**
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma:no-cache
Set-Cookie:lang=0
Set-Cookie:lang=0
Connection:close
Transfer-Encoding:chunked
Content-Type:text/html; charset=UTF-8
IE CSS Запрос:
(Request-Line):GET /css/css.php?css=portal HTTP/1.1
Accept:*/*
Host:www.webapp.nl
Connection:Keep-Alive
IE CSS Response
(Status-Line):HTTP/1.1 200 OK
Date:Wed, 14 Jul 2010 10:35:35 GMT
Server:Apache
X-Powered-By:PHP/5.1.6
**Set-Cookie:PHPSESSID=pe2cio1vhu0shq2i497bjh5oa4; path=/**
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma:no-cache
Content-Length:0
Connection:close
Content-Type:text/html; charset=UTF-8
Firefox Запрос Войти пост на мой веб-приложение
Host www.webapp.nl
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language nl,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
FF Ответ
Date Wed, 14 Jul 2010 10:38:57 GMT
Server Apache
X-Powered-By PHP/5.1.6
**Set-Cookie PHPSESSID=re10rmqq7u723ht3719o9q5el3; path=/ lang=0 lang=0**
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Connection close
Transfer-Encoding chunked
Content-Type text/html; charset=UTF-8
FF C СС Запрос
Host www.webapp.nl
Accept text/css,*/*;q=0.1
Accept-Language nl,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
**Cookie PHPSESSID=re10rmqq7u723ht3719o9q5el3; lang=0**
FF CSS отклика
Date Wed, 14 Jul 2010 10:38:57 GMT
Server Apache
X-Powered-By PHP/5.1.6
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Connection close
Transfer-Encoding chunked
Content-Type text/css; charset=utf-8
(Удалены некоторые для краткости)
Разница очевидна. IE не отправляет файл cookie вместе с запросом CSS, даже несмотря на то, что он получил набор cookie из ответа на вход. Firefox отправляет cookie вместе с запросом CSS. И мой webapp не возвращает CSS/Script, если не установлен действительный cookie.
Су, любой фрейм/гуру печенья знает, почему IE не отправляет куки-файлы, полученные в первом ответе, в запросах дополнительных ресурсов для загрузки страницы?
Blockquote
Хм, похоже, это так, после того, как я вхожу в систему, появляется окошко конфиденциальности. --- Я этого не понимаю. Настройка файла cookie должна быть сделана для домена www.webapp.com, независимо от того, будет ли панель местоположения браузера напрямую отображаться на сайте www.webapp.com или будет отображаться www.webapp.com через набор фреймов. --- Я понимаю, что мне запрещено указывать файл cookie для домена www.vendor.com, но почему IE думал, что я хочу это сделать? (И у всех других браузеров этого нет, они понимают, что я установил cookie для домена www.webapp.com)? – Kwaak
IE знает, что вы хотите установить файлы cookie для своего домена webapp.com, но эта страница является фреймом внутри vendor.com. Поскольку эти домены разные, конфигурация IE по умолчанию заключается в блокировке запросов с помощью webapp.com для установки любого файла cookie. IIRC вы можете обойти это, используя некоторый заголовок P3P, когда вы устанавливаете файл cookie. – AlfonsoML