我有一個幾個字段的表單。當您提交表單時,服務器會響應重定向(HTTP 302)。IE不遵循重定向,給出「Internet Explorer無法顯示網頁」
當表單提交時,如果有<input type=file>
字段,IE不會遵循重定向,而是會出現錯誤:「Internet Explorer無法顯示網頁」。
如果有否<input type=file>
字段,那麼它確實按照預期的重定向。
HTTP 302響應是,確切地說在兩種情況下都是相同的,只是響應的時間戳不同。
我在IE8和IE9中遇到這種情況。 (我還沒有嘗試過較低版本)。 Firefox,Chrome,Opera和Safari都按照預期遵循重定向。
注:
- 形式具有屬性
enctype="multipart/form-data"
。 - 這是通過SSL發生的
- 重定向不是與表單POST或承載的表單的URL不同的協議,主機或端口。
- 當我使用Fiddler2檢查HTTP流量時,問題消失並且IE的行爲。
奇數。 302重定向會導致瀏覽器在目標頁面上發出GET,這會丟失上傳的文件(如果有的話)。也許IE的錯誤是一個跡象(和IE總是有糟糕的錯誤信息)。但是,這並不能解釋爲什麼Fiddler會「修復」一些東西。 –
@Marc,在服務器上它是一個Rails應用程序。它接受請求,將文件和內容保存到數據庫中,然後以重定向響應另一個頁面。它應該向這個新頁面發出GET請求,但事實並非如此。 – nicholaides