2013-05-29 14 views
9

Po kliknięciu łącza w programie Excel/Word, a link prowadzi do witryny, która sprawdza agenta użytkownika w celu ustalenia, czy jest on obsługiwany lub nie, witryna może błędnie założyć, że używasz MSIE 7.0, gdy w rzeczywistości używasz coś innego, powiedzmy Chrome.dlaczego klikanie linków w Excelu/Wordie powoduje, że moja przeglądarka inna niż IE podszywa się pod MSIE 7.0?

Podczas sprawdzania agenta użytkownika wysłanego wraz z żądaniem, pokazuje ono, że żądanie pochodzi z MSI 7.0 - kiedy z punktu użytkownika, MSIE 7.0 nie jest wyraźnie używany.

Co się tutaj dzieje? Jak mogę przestać pokazywać użytkownikom złą wiadomość?

Odpowiedz

7

Problem polega na tym, że program Excel/Word próbuje wstępnie załadować łącze, gdy zostanie kliknięte. Jeśli zostanie załadowany, otworzy domyślną przeglądarkę z podanym linkiem. Jednak będzie także śledzić 302 przekierowania podczas wstępnego ładowania łącza. Jeśli witryna nie obsługuje MSIE7 (która obecnie staje się dość powszechna), najprawdopodobniej przekieruje Cię na stronę informacji/błędów. Procedura ładowania wstępnego otworzy następnie tę stronę w przeglądarce zamiast oryginalnego linku, co spowoduje komunikat wyjaśniający, dlaczego MSIE 7.0 nie jest obsługiwany - ale wprowadzając w błąd użytkownika, który wyraźnie widzi, że strona została załadowana za pomocą przeglądarki Chrome.

Czy istnieje zalecany sposób kodowania wokół tego?

Jeśli odpowiedź została już udzielona, ​​proszę dać mi znać. Mam nadzieję, że to pomoże komuś.

+0

Witam, dodałem odpowiedź, jeśli wciąż jej szukasz. –

4

Najprostszym rozwiązaniem jest umieszczenie przeglądarki na stronie "IE 7 not supported". Program Office, po wykonaniu przekierowań (na podstawie niepoprawnego ciągu agenta użytkownika, który wysyła) załaduje stronę błędu, otrzyma odpowiedź HTTP 200, a następnie wyrzuci link do domyślnej przeglądarki. Następnie przeglądarka żąda samej strony z właściwym ciągiem agenta użytkownika.

  1. Biuro wnioski procesowe "example.com/example.html" z agentem użytkownika "compatible; MSIE 7.0"
  2. powraca serwer HTTP 302 przekierowanie do example.com/notsupported.html
  3. wnioski procesowe Biuro " example.com/notsupported.html "z User agent "compatible; MSIE 7.0"
  4. Server zwraca HTTP 200 Found + example.com/notsupported.html
  5. Biuro proces przechodzi link do domyślnej przeglądarce
  6. wnioski domyślna przeglądarka" example.co m/notsupported.html”z User Agent "cokolwiek agent przeglądarka jest"
  7. Server zwraca http 200 Znaleziono + example.com/notsupported.html

Więc gdy przeglądarka żąda strony można użyć użytkownikowi ciąg agenta, aby zobaczyć, czy naprawdę chcesz wysłać stronę "nieobsługiwaną", lub przekierować żądanie do prawdziwej treści.

Spowoduje to jednak problem ze znalezieniem oryginalnego adresu URL, który został przekierowany. Występują problemy z udostępnianiem sesji między procesem Office, który pierwotnie żąda strony i przeglądarki, która ostatecznie przechodzi przez punkt końcowy. Obejściem tutaj byłoby włączenie pierwotnego adresu URL żądania jako parametru ciągu zapytania w odpowiedzi przekierowania na stronę "Nie obsługiwane".

Powiązane problemy