4

我有一個在Tomcat服務器中部署的Spring應用程序(帶有Spring Security和Spring MVC)。該應用程序完美適用於Firefox,Chrome,Opera和IE9。僅僅在IE8中,404響應怎麼可能?

我有一個奇怪的問題與IE8。加載登錄屏幕,並且(如我在服務器日誌中看到的)會話在提供用戶名和密碼時打開。一旦用戶登錄,並且瀏覽器被重定向到主頁面,服務器將返回404錯誤。

由於IE8開發人員工具沒有網絡面板,因此我使用Fiddler來監視http連接。我認爲它可能會發生,它正在做頁面加載過程中的錯誤請求,但它是主要的頁面請求與404響應。

這怎麼可能,服務器響應404與主頁面請求只是只在IE8中?

謝謝。

編輯:

這些都是爲IE8和Firefox分別請求頭:

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在請求您的主頁時不會發送與登錄相關的cookie? – tomfumb

+0

謝謝我按照您的說法完成了任務,並且我沒有發現任何有關問題的線索。我將在兩種情況下編輯添加標題的帖子。 – francadaval

+0

我發現將IE8請求中的'Accept'更改爲Firefox請求中的'Accept'(Accept:text/html,application/xhtml + xml,application/xml; q = 0.9,*/*; q = 0.8)所以我建議我必須將我的應用程序配置爲IE8發送的'接受'值。 – francadaval

回答

1

知道,這個問題是關於 「接受」 我已經修改了MVC控制器類映射和我已經finfin找到了這個問題。不知怎的,這是主要的網頁是在MVC映射所以也沒蒙山IE8的標題屬性的工作方式:

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

我今天學到了沉痛的教訓。 ;-)

+0

這幫了我 - 我無法弄清楚爲什麼每次我去「/」IE會試圖下載一個電子表格(我有另一個電子表格生成的頁面),但在FF中它可以正常工作。感謝您的解決方案。 – Paul

+0

我不明白,我必須在某處添加此行嗎? – Edgar

相關問題