4

톰캣 서버에 스프링 애플리케이션과 스프링 MVC를 배치했다. 이 응용 프로그램은 Firefox, Chrome, Opera 및 IE9에서 완벽하게 작동합니다.IE8에서만 404 응답을 어떻게 가능합니까?

저는 IE8에 이상한 문제가 있습니다. 로그인 화면이로드되고 (서버 로그에서 볼 수 있듯이) 사용자 이름과 비밀번호가 제공되면 세션이 열려 있습니다. 사용자가 기록되고 브라우저가 기본 페이지로 리디렉션되면 서버에서 404 오류를 반환합니다.

IE8 개발자 도구에는 넷 패널이 없으므로 Fiddler를 사용하여 http 연결을 모니터링했습니다. 페이지 로딩 중에 잘못된 요청을하는 경우가 발생할 수 있다고 생각했지만 404와 함께 응답하는 기본 페이지 요청이었습니다.

404와 함께 서버가 메인 페이지 요청에 어떻게 응답 할 수 있습니까? IE8에서만?

감사합니다.

편집 :

은 그 각각 IE8과 파이어 폭스에 대한 요청 헤더입니다

GET /myWebApp/ 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, */* 
Accept-Language: es-ES 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
UA-CPU: AMD64 
Accept-Encoding: gzip, deflate 
Host: dev.mydomain.com 
Connection: Keep-Alive 
Cookie: JSESSIONID=ABA1382304002F894ABDFCC2442FA5F8; SPRING_SECURITY_REMEMBER_ME_COOKIE=NGUxMTZlOTY3OGM0OTgxNDY4NDczOTlkOjEzMjQ1ODMwMzU0MDI6OWZiYzdhYjY1ODY2Mzc3YmI0Yzc5YTMzMWI5NDhjNTg 

-

GET /myWebApp/ HTTP/1.1 
Host: dev.mydomain.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: es-es,chrome://global/locale/intl.properties;q=0.5 
Accept-Encoding: gzip, deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Connection: keep-alive 
Cookie: JSESSIONID=7FD3B02252E2FCBC9BE7249AFD84F541; SPRING_SECURITY_REMEMBER_ME_COOKIE=NGUxMmYxMTgzMmRjZTM0NzYyMWVjOWEwOjEzMjQ1ODMwMTA1MTU6MzFiYzU4OGQ4NTMwN2Y3M2I4YmQzN2M0NzY2MzcwZjI 
+0

이미 Fiddler를 사용하고 있다면 IE8과 작동하는 브라우저에서 보낸 요청 (헤더 포함)을 비교할 수 있습니다. IE8 요청을 편집하고 잠금 해제하면 작동하는 것을 얻을 수 있습니다. 이것은 분명히 사용자를위한 문제를 해결하지는 않지만 적어도 보게 될 곳을 보여줍니다. 아마도 IE8이 홈 페이지를 요청할 때 로그인과 관련된 쿠키를 보내지 않을 수 있습니다. – tomfumb

+0

당신이 말한대로 해 주셔서 감사 드리며 문제가 무엇인지에 대한 단서를 찾지 못했습니다. 두 경우 모두 헤더를 추가하여 게시물을 편집합니다. – francadaval

+0

IE8 요청에서 '수락'을 파이어 폭스 요청 (Accept : text/html, application/xhtml + xml, application/xml; q = 0.9, */*; q = 0.8)으로 바꾸는 것을 발견했습니다. 그래서 나는 IE8이 보내는 'Accept'값으로 내 앱을 구성해야한다. – francadaval

답변

1

문제가 "동의"에 대한 것을 알고 내가 수정 한 MVC 컨트롤러 클래스 매핑 및 마지막으로 문제를 발견했습니다. 오늘 하드 교훈을 배운

@RequestMapping(value = "/", headers = "Accept=text/*") 

: 어떻게 든이는 IE8 헤더 속성 아 파크 작동하지 않았다, 그래서 메인 페이지는 MVC에 매핑 된 방식이었다. ;-)

+0

이것이 도움이되었습니다. "매번"/ "IE에서 스프레드 시트를 다운로드하려고 할 때마다 (왜 스프레드 시트가 생성 된 다른 페이지가 있는지) 알 수 없었습니다. 그러나 FF에서는 제대로 작동합니다. 솔루션을 가져 주셔서 감사합니다. – Paul

+0

나는이 선을 어딘가에 추가해야한다는 것을 이해하지 못했다. – Edgar

관련 문제