Я сталкиваюсь с очень странным поведением относительно фреймов и Internet Explorer.
Ситуация такая:
- У меня есть веб-приложение на www.webapp.com
- У меня есть клиент, который хочет иметь поле для входа на мой сайт www.webapp.com на своем веб-сайте: www.vendor.com
- Продавец, его веб-сайт настроен веб-дизайнером по адресу www..vendor.com.Он состоит из 2 кадров:
- Первый кадр охватывает 100% высоты и ширины и находится по адресу www.webdedesigner.com/clients/vendor
- Второй кадр охватывает 0,0 и не имеетуказать на что-либо
Поле входа на удаленном сайте указывает на мое веб-приложение.И отправляет логин + имя пользователя и т. Д. Причина, по которой веб-сайт клиента настраивается с помощью фреймов, заключается в том, что адресная строка браузера всегда сохраняется на сайте 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 неправильно обрабатывает относительные URL-адреса CSS / JS ...
Есть четноеболее странная вещь!Если я очищаю кеш браузера IE и сначала захожу на www.webapp.com через этот домен, а затем захожу и захожу через www.vendor.com в IE, CSS / JS загружается!Что за...?Все мое веб-приложение находится на HTTPS, поэтому оно не должно кэшировать какие-либо ресурсы ...
Я ошеломлен, поэтому я прибегаю к публикации здесь ... кто-нибудь знает, что случилось?
Edit
Хорошо, после того, как я установил соответствующий инструмент отладки для 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
(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-ответ
(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 CSS
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 Response
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, хотя он и получил set-cookie из ответа при входе в систему.Firefox отправил cookie вместе с запросом CSS.И мое веб-приложение не возвращает CSS / Script, если не был установлен допустимый файл cookie.
Так, любой гуру фреймов / файлов cookie знает, почему IE не отправляет файлы cookie, полученные в первом ответе, в последующих запросах ресурсов.для загружаемой страницы?
Цитата