Microsoft Edge URL 太長會造成檔案無法下載

貌似 Edge 的 regression bug,這個問題在早期的 IE 也會發生。

bug 描述是:當下載 octet-stream content 的時候,若 URL 超過 2046 這個神秘數字(包含 query string),那會發生 HTTP response 已經收完但卻沒有跳出下載畫面。

由於 request 有送出去也正常的收到 response,只能猜想是 Edge 在反查 URL 找檔名的時候遇到了太長而不繼續處理的問題,而導致後續什麼事情都沒發生。

目前的解法是把 GET 改成 POST,並把 query string 改放到 body 來避掉這個問題。另外一種可能的解法(沒測過),是在 content-disposition 後面附上 filename,可能也會有效果(吧)。

當然 URL 太長本身就很容易遇到問題,例如 Nginx 或是 Apache URL 的長度上限其實隨著版本不同,要小心踩到雷。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.