![]() |
Skurken i dramat |
Ett sätt att tvinga fram "Save as"-dialogen i en webbläsare (för att ladda ner en fil) är att använda
Content-Disposition
HTTP-headern med "attachment" som värde. Det ser ut såhär:Content-Disposition: attachment; filename="Filnamn.pdf"
Detta använder vi i det projekt jag jobbar i för tillfället, men igår upptäckte vi att det inte fungerar i IE8. Efter en stunds efterforskning hittade jag denna buggrapport hos Microsoft. Det intressanta i buggrapporten är "This issue occurs if the server sends a "Cache-control:no-store" header or sends a "Cache-control:no-cache" header.". Dessa cache-kontroll headers tillsammans med HTTPS är tydligen ingen bra kombination för Internet Explorer.
I vårt fall sattes headern
Cache-Control: no-cache
vilket orsakade vårt problem. När denna togs bort fungerade det prima i både IE8 och Firefox. Efter förändringarna ser HTTP-response-headers ut enligt följande:
Cache-Control: max-age=3600
Date: Wed, 01 Dec 2010 12:52:23 GMT
Transfer-Encoding: chunked
Content-Length: 34121
Content-Type: application/pdf
Expires: Wed, 01 Dec 2010 13:52:23 GMT
Last-Modified: Wed, 01 Dec 2010 12:52:23 GMT
Content-Disposition: attachment; filename="Filnamn.pdf"
X-Powered-By: Servlet/2.5 JSP/2.1
Inga kommentarer:
Skicka en kommentar