Рамки + курьезы Internet Explorer - PullRequest
2 голосов
/ 14 июля 2010

Я сталкиваюсь с очень странным поведением относительно фреймов и 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, полученные в первом ответе, в последующих запросах ресурсов.для загружаемой страницы?

Цитата

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

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

0 голосов
/ 14 июля 2010

Разве? Js = общественность не отрезана?

...