Im przeżywa następujący problem z IE10 (innych przeglądarek, takich jak Firefox, Opera, Chrome i starszych wersjach IE nie wydają się być naruszone.IE10 dodaje HTTP 302 przekierowanie dwukrotnie
(1) Przeglądarka uderza stronę, która odpowiada z HTTP 302 przekierowanie do innej strony (w celu przeprowadzenia Login):
Zapytanie:
GET https://www.domain-one.de/startpage.aspx?... HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
DNT: 1
Host: www.domain-one.de
Pragma: no-cache
Connection: Keep-Alive
Cookie: ...
Response:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=utf-8
Location: https://login.domain-two.com/login?tid=hGZmFb77-9VyiwfkhIXIRMDp
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
P3P: CP="NOi CURa TAIa OUR NOR UNI"
Date: Tue, 13 Aug 2013 19:01:22 GMT
Content-Length: 190
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://login.domain-two.com/login?tid=hGZmFb77-9VyiwfkhIXIRMDp">here</a>.</h2>
</body></html>
(2) IE wykonuje to przekierowanie. Serwer ustawia pewne coookies i przekierowuje z powrotem do oryginalnej strony:
Zapytanie:
GET https://login.domain-two.com/login?tid=hGZmFb77-9VyiwfkhIXIRMDp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: login.domain-two.com
DNT: 1
Cookie: ...
Pragma: no-cache
Connection: Keep-Alive
Response:
HTTP/1.1 302 Found
Date: Tue, 13 Aug 2013 19:01:22 GMT
Server: Apache
P3P: CP="NOI CURa TAIa OUR NOR UNI"
Location: https://www.domain-one.de/BackFromLogin.aspx?TID=hGZmFb77-9VyiwfkhIXIRMDp
Content-Length: 277
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://dwww.domain-one.de/BackFromLogin.aspx?TID=hGZmFb77-9VyiwfkhIXIRMDp">here</a>.</p>
</body></html>
(3) Do tutaj, wszystko wydaje się normalne. Jednak IE10 teraz ignoruje odpowiedź właśnie otrzymał i podąża tą samą przekierowanie ponownie:
Zapytanie:
GET https://login.domain-two.com/login?tid=hGZmFb77-9VyiwfkhIXIRMDp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: login.domain-two.com
DNT: 1
Connection: Keep-Alive
Cookie: ...
Ten serwer wykrywa ten duplikat żądanie i odrzuca go, odpowiadając na stronę błędu (wiem HTTP GET powinien być idempotentny, ale tak działa ta strona).
Nie rozumiem, dlaczego IE10 ignoruje oryginalną odpowiedź i ponownie wysyła to samo żądanie (aczkolwiek bez nagłówka "Pragma: no-cache"). Masz jakiś pomysł?
Czy możesz podzielić się przechwytywaniem Fiddlera, które demonstruje to zachowanie? IE może zrobić coś takiego, jeśli połączenie z odpowiedzią ma wartość RST, zanim zostanie odczytane, ale wydaje się to mało prawdopodobne. – EricLaw