2010-07-14 5 views
2

Я сталкиваюсь с некоторыми очень странными вещами относительно фреймов и интернет-исследователей.Рамки + особенности 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

ответ

2

По умолчанию IE блокирует файлы cookie с сторонних сайтов, вы должны отметить в строке состояния, что глас конфиденциальности становится активным, и заявляет, что он заблокировал файлы cookie на вашем сайте.

+0

Хм, похоже, это так, после того, как я вхожу в систему, появляется окошко конфиденциальности. --- Я этого не понимаю. Настройка файла cookie должна быть сделана для домена www.webapp.com, независимо от того, будет ли панель местоположения браузера напрямую отображаться на сайте www.webapp.com или будет отображаться www.webapp.com через набор фреймов. --- Я понимаю, что мне запрещено указывать файл cookie для домена www.vendor.com, но почему IE думал, что я хочу это сделать? (И у всех других браузеров этого нет, они понимают, что я установил cookie для домена www.webapp.com)? – Kwaak

+0

IE знает, что вы хотите установить файлы cookie для своего домена webapp.com, но эта страница является фреймом внутри vendor.com. Поскольку эти домены разные, конфигурация IE по умолчанию заключается в блокировке запросов с помощью webapp.com для установки любого файла cookie. IIRC вы можете обойти это, используя некоторый заголовок P3P, когда вы устанавливаете файл cookie. – AlfonsoML

0

нет? JS = публика получать отрезаны?