2013-05-29 2 views
9

Excel/Word에서 링크를 클릭하면 해당 링크가 지원되는지 여부를 확인하기 위해 사용자 에이전트를 검사하는 사이트로 연결됩니다. 실제로 사이트를 사용할 때 사이트에서 MSIE 7.0을 사용한다고 잘못 가정 할 수 있습니다. 다른 것, 크롬 말.Excel/Word의 링크를 클릭하면 IE가 아닌 브라우저가 MSIE 7.0으로 가장하는 이유는 무엇입니까?

요청과 함께 전송 된 사용자 에이전트를 검사 할 때 MSIE 7.0의 요청임을 나타냅니다. 사용자의 시점에서 MSIE 7.0이 사용되지 않을 것입니다.

여기에 무슨 일이 일어나고 있습니까? 사용자에게 잘못된 메시지 표시를 중지하려면 어떻게해야합니까?

답변

7

Excel/Word에서 클릭하면 링크가 미리로드됩니다. 성공적으로로드되면 지정된 링크가있는 기본 브라우저가 열립니다. 그러나 링크를 미리로드하면 302 리디렉션도 수행됩니다. 사이트가 MSIE7을 지원하지 않는 경우 (이제는 일반화되고 있음) 대부분 정보/오류 페이지로 리디렉션됩니다. 사전로드 루틴은 원래 링크가 아닌 브라우저에서이 페이지를 열어 MSIE 7.0이 지원되지 않는 이유를 설명하는 메시지를 표시하지만 Chrome을 사용하여 페이지가로드되었음을 명확하게 볼 수있는 사용자를 혼란스럽게합니다.

이 문제를 해결하기위한 권장 방법이 있습니까?

이전에 답변을 얻었 으면 알려주세요. 나는 그것이 누군가를 돕기를 바랍니다.

+0

안녕하세요, 아직 답변을 찾지 못한 경우 답변을 추가했습니다. –

4

가장 간단한 해결책은 "IE 7 지원되지 않는 페이지"에 브라우저 확인을 배치하는 것입니다. Office 프로그램이 리디렉션을 따라 (잘못된 사용자 에이전트 문자열을 기반으로) 오류 페이지를로드하고 HTTP 200 응답을받은 다음 링크를 기본 브라우저까지 전송합니다. 그런 다음 브라우저는 적절한 사용자 에이전트 문자열을 사용하여 페이지 자체를 요청합니다. "호환; MSIE 7.0"사용자 에이전트와

  1. 사무실 프로세스 요청 "example.com/example.html"
  2. 서버 반환 HTTP 302 리디렉션 "는
  3. 사무실 프로세스 요청을 example.com/notsupported.html하기 example.com/notsupported.html "로 사용자 에이전트"호환; MSIE 7.0 "
  4. 서버가 반환 + example.com/notsupported.html
  5. 사무실 과정을 찾을 수 HTTP (200)는
  6. 기본 브라우저 요청 기본 브라우저에 대한 링크를 전달합니다" example.co m 브라우저 에이전트는
  7. 서버는 브라우저가 페이지를 요청하면 example.com/notsupported.html

그래서 당신이 사용자를 사용할 수 있습니다 + 찾을 HTTP 200을 반환합니다 "무엇이든"사용자 에이전트와 "/ notsupported.html agent 문자열을 사용하여 "지원되지 않는"페이지를 다시 보내거나 실제 콘텐츠로 요청을 리디렉션할지 여부를 확인하십시오.

그러나 리디렉션 된 원래 URL을 찾는 문제가 발생합니다. 원래 페이지를 요청한 Office 프로세스와 최종적으로 끝점 URL이 전달되는 브라우저간에 세션을 공유 할 때 문제가 있습니다. 이 문제를 해결하려면 원래 요청 URL을 쿼리 문자열 매개 변수로 '지원되지 않음'페이지의 리디렉션 응답에 포함해야합니다.