2011-02-17 4 views
12

HTTPS (SSL) 호스트의 JSF 웹 응용 프로그램에서 파일 다운로드 (보통 CSV 또는 PDF)를 제공하고 있습니다. 그것은 대부분의 브라우저에서 잘 작동 만 IE7/8 다음과 같은 오류를 제공합니다 :IE는 foo.jsf를 다운로드 할 수 없습니다. IE는이 인터넷 사이트를 열 수 없습니다. 요청한 사이트를 사용할 수 없거나 찾을 수 없습니다.

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

나는 오류가 JSF <h:commandLink> 태그는 IE와 호환되지 않는 관련이있다 생각합니다.

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

어떻게 이것이 발생하며 어떻게 해결할 수 있습니까?

답변

14

이것은 응답 헤더가 no-cache을 통해 브라우저 캐시를 사용하지 않도록 설정되어있는 동안 HTTPS (SSL)를 통해 다운로드 할 때 발생하는 일반적인 MSIE 오류 메시지입니다. 이 문제는 JSF와 관련이 없습니다.

브라우저 캐시에 영향을주는 응답 헤더를 완화해야합니다. no-cache 명령어가 포함되어서는 안됩니다. public, private 또는 no-store으로 설정할 수 있습니다.

또한 MS KB Q316431도 참조하십시오.

또한, 당신이 나중에 Cache-Control 헤더를 재정의하는 것을 방지하기 위해 다음, WebSphere Application Server의 실행 순서뿐만 아니라 아래의 헤더를 추가하는 일 경우 :

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

참조 또한 IE cannot download files over SSL served by WebSphere.

+0

내 관심사는 파일이 실제로 공개되지 않으며 실제로는 절대 캐시해서는 안된다는 것입니다. –

+1

대신에'Cache-Control : no-store' 또는'Cache-Control : private'과'Pragma : private' 중 하나를 사용하십시오. 이것은 Internet Explorer에서 여전히 SSL상에서 작동하는 가장 유사한 것 같습니다. – bassim

1

모든 브라우저에서 액세스 할 수있는 commandbutton을 html로 변환하기 때문에 문제는 jsf와 관련이 없습니다. 문제가 abcBean.downloadCSV에 있다고 추측합니다. csv 파일에 콘텐츠 유형을 올바르게 설정하고 있습니까?

조치 방법에 어떤 현상이 발생했는지 설명 할 수 있습니까?

+0

콘텐츠 유형이 다른 브라우저에서 정상적으로 작동하고 MSIE가 무시해도 문제가되지는 않습니다. 대신 요청 URL을 기반으로 결정됩니다 (예 : 놀라운 ...). – BalusC

관련 문제