Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IE cannot download foo.jsf. IE was not able to open this internet site. The requested site is either unavailable or cannot be found

I'm providing a file download (usually CSV or PDF) in my JSF web application on a HTTPS (SSL) host. It works fine in most browsers, only IE7/8 gives the following error:

Internet Explorer cannot download foo.jsf. Internet Explorer was not able to open this internet site. The requested site is either unavailable or cannot be found. Please try again

I think the error is related to the JSF <h:commandLink> tag not being compatible with IE.

<h:commandLink value="Download" action="#{bean.download}" />

How is this caused and how can I solve it?

like image 965
mona Avatar asked Feb 17 '11 20:02

mona


2 Answers

This is a typical MSIE error message when a download is been provided over HTTPS (SSL) while the response headers are been set to disable the browser cache via no-cache. This issue is not related to JSF.

You need to relax the response headers which have influence on the browser cache. It should not contain the no-cache instruction. You could set it to public, private or no-store.

response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");

See also MS KB Q316431.

Additionally, if you happen to run on WebSphere Application Server, then add the below header as well in order to prevent it from overriding the Cache-Control header afterwards:

response.setHeader("CookiesConfigureNoCache", "false");             

See also IE cannot download files over SSL served by WebSphere.

like image 58
BalusC Avatar answered Oct 24 '22 15:10

BalusC


The issue wouldn't be related to jsf as it's just converting commandbutton to html which is accessible in all browsers. I'm guessing the issue is in abcBean.downloadCSV. Are you setting the content-type properly on the csv file?

Can you describe what occurs in your action method?

like image 38
Dave Maple Avatar answered Oct 24 '22 14:10

Dave Maple